.net 使用SmtpClient和IDisposable
我注意到,大多数使用.NET的SmtpClient类的示例代码都没有处理创建的对象或将其包装在using块中。(例如)SMTP客户的处置是可选的还是不太重要,或者示例是否将我们引向了错误的道路?注意:在上面提供的MSDN示例中,MailMessage被释放,而不是SmtpClient对象 Msdn示例省略了类似的内容,因为重点是在一篇小文章中清楚地演示一个概念,而不是编写一个正确的健壮的生产应用程序。Msdn示例省略了类似的内容,因为重点是在一篇小文章中清楚地演示一个概念,不能编写正确的健壮的生产应用程序。您必须处理它.net 使用SmtpClient和IDisposable,.net,idisposable,smtpclient,.net,Idisposable,Smtpclient,我注意到,大多数使用.NET的SmtpClient类的示例代码都没有处理创建的对象或将其包装在using块中。(例如)SMTP客户的处置是可选的还是不太重要,或者示例是否将我们引向了错误的道路?注意:在上面提供的MSDN示例中,MailMessage被释放,而不是SmtpClient对象 Msdn示例省略了类似的内容,因为重点是在一篇小文章中清楚地演示一个概念,而不是编写一个正确的健壮的生产应用程序。Msdn示例省略了类似的内容,因为重点是在一篇小文章中清楚地演示一个概念,不能编写正确的健壮的生
在示例中,他们使用SendAsync(),这就是为什么他们不使用“using”关键字的原因-SendAsync()会立即返回,您可以尝试处理当前正在使用的对象。但是,最好在完成所有异步方法后处理客户端。您必须处理它
在示例中,他们使用SendAsync(),这就是为什么他们不使用“using”关键字的原因-SendAsync()会立即返回,您可以尝试处理当前正在使用的对象。但是,最好在完成所有异步方法后处理客户端。许多联机示例没有显示正确的处理代码的原因是。因此,这些示例可能基于以前的框架,或者由不熟悉新功能的人编写。许多在线示例没有显示正确的处理代码的原因是。因此,这些示例可能基于以前的框架,或者由不熟悉新功能的人编写。我真的必须学会更快地键入:p例如,如果您查看“Dispose()”的文档,您将看到,如果请求被提前调用,它将改变请求。(可能)他们错过了异步处理程序末尾的“sender.Dispose()”。但我认为垃圾收集器将能够处理这个问题。当然,GC将处理这个问题,但实现IDisposable的原因是为了在垃圾收集之前的早期阶段处理对象,以释放一些操作系统或外部资源。我确实必须学会更快地键入:例如,如果您查看“Dispose()”的文档,您将看到如果它被提前调用,它将改变请求。(可能)他们错过了异步处理程序末尾的“sender.Dispose()”。但我认为Garbagecollector能够处理这个问题。当然,GC能够处理这个问题,但是实现IDisposable的原因是为了在垃圾收集之前的早期阶段处理对象,以便释放一些操作系统或外部资源。如果你仔细看一下,这不仅仅是MSDN的例子。我还认为这是一个糟糕的概念,因为许多(大多数?)会一字不差地遵循这些示例。如果你随便看看,不仅仅是MSDN示例。我还认为这是一个糟糕的概念,因为许多(大多数?)会一字不差地遵循示例。