我对如何管理SmtpClient感到有点困惑,因为它是一次性的,特别是如果我使用SendAsync进行调用.据推测,在SendAsync完成之前,我不应该调用Dispose.但我应该打电话给它(例如,使用"使用").该方案是一个WCF服务,它在发出呼叫时定期发送电子邮件.大多数计算速度很快,但发送电子邮件可能需要一秒左右的时间,所以Async会更好.
我每次发邮件时都应该创建一个新的SmtpClient吗?我应该为整个WCF创建一个吗?救命!
更新如果它有所不同,则始终为用户自定义每封电子邮件.WCF托管在Azure上,Gmail用作邮件程序.
我有这个PreloadClient实现的对象IDisposable,我想处理它,但在异步方法完成它们的调用之后......这没有发生
private void Preload(SlideHandler slide)
{
using(PreloadClient client = new PreloadClient())
{
client.PreloadCompleted += client_PreloadCompleted;
client.Preload(slide);
}
// Here client is disposed immediately
}
private void client_PreloadCompleted(object sender, SlidePreloadCompletedEventArgs e)
{
// this is method is called after a while,
// but errors are thrown when trying to access object state (fields, properties)
}
Run Code Online (Sandbox Code Playgroud)
那么,任何想法或工作?