這個問題是關於SmtpClient在.net 3.5。我知道.NET 4中的部署更改,但遷移目前不是一種選擇。SmtpClient SendAsync在.net 3.5
我想知道,如果你使用sendasync和smtpclient超出範圍什麼用smtpclient發生。例如:
public void SendSomething(){
SmtpClient smtp = new SmtpClient(...);
smtp.SendCompleted += SendCompletedCallback;
smtp.SendAsync(...);
}
private void SendCompletedCallback(object sender, AsyncCompletedEventArgs e){
...
}
如果您發送這樣的事情會發生什麼,對象超出的製法範圍和smtpclient是有點慢,只啓動實際現在就派:這是否給任何問題?或者,smtpclient保護自己不被垃圾收集等?
根據MSDN文檔,你不能做一個sendasync而另一個sendasync還沒有完成。但是,如果創建兩個smtpclient並同時執行sendasync(例如,兩個線程同時調用SendSomething()方法)會發生什麼情況。它可以處理這個問題還是會產生問題?
另一個問題: 目前在.NET 3.5 SMTP客戶端沒有它的完成後發送quit命令。這是在.NET 4中進行處理的。然而,這個bug有多糟糕:如果quit命令沒有被髮送,它是否會導致smtp服務器出現問題?或者這是他們應該能夠處理的事情?