问题在于SmtpClient in .NET 3.5。 我知道网络4的处置变化,但移徙目前不是一个选择。
我不禁要问,如果你使用派遣国和点燃国,会发生什么。 例:
public void SendSomething(){
SmtpClient smtp = new SmtpClient(...);
smtp.SendCompleted += SendCompletedCallback;
smtp.SendAsync(...);
}
private void SendCompletedCallback(object sender, AsyncCompletedEventArgs e){
...
}
如果你发出类似的东西,目标就会超出方法的范围,而点燃者只是缓慢的,现在才开始实际发送:这是否带来任何问题? 或者, s子公司是否保护自己免遭垃圾收集等?
According to the msdn documentation you can t do a sendasync while another sendasync isn t finished yet. But what happens if you create two smtpclients and do a sendasync at the same time (for example two threads call the SendSomething() method at the same time). Can it handle this or will it create problems?
Another question: Currently in .NET 3.5 the smtp client doesn t send the quit command after it s done. This is fixed in .NET 4 with dispose. However how bad is this bug: does it cause problems for the smtp servers if the quit command isn t sent? Or is this something they should be able to handle?