2

我注意到大多数使用 .NET 的 SmtpClient 类的示例代码不会 Dispose 创建的对象或将其包装在 using 块中。(例如http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.aspx) SmtpClient 的处置是可选的还是不是很重要,或者这些示例是否会导致我们走错路?注意:在上面提供的 MSDN 示例中,已释放 MailMessage,但未释放 SmtpClient 对象。

4

3 回答 3

3

网上很多例子没有显示正确的处理代码的原因是SmtpClient 直到 .NET 4 才实现 IDisposable。因此,这些示例可能基于以前的框架,或者由不熟悉新功能的人编写。

于 2012-07-06T00:19:58.670 回答
1

你必须处理它。

在他们使用 SendAsync() 的示例中,这就是他们不使用“using”关键字的原因 - SendAsync() 立即返回,您可能会尝试处置当前正在使用的对象。但是,最好在所有异步方法都完成后处理客户端。

于 2012-06-18T12:25:26.623 回答
0

msdn 示例省略了类似的内容,因为重点是在一篇重点小的文章中清楚地展示一个概念,而不是编写一个正确的健壮生产应用程序。

于 2012-06-18T12:24:03.007 回答