相关疑难解决方法(0)

在.NET 4.0下使用SmtpClient,SendAsync和Dispose的最佳实践是什么

我对如何管理SmtpClient感到有点困惑,因为它是一次性的,特别是如果我使用SendAsync进行调用.据推测,在SendAsync完成之前,我不应该调用Dispose.但我应该打电话给它(例如,使用"使用").该方案是一个WCF服务,它在发出呼叫时定期发送电子邮件.大多数计算速度很快,但发送电子邮件可能需要一秒左右的时间,所以Async会更好.

我每次发邮件时都应该创建一个新的SmtpClient吗?我应该为整个WCF创建一个吗?救命!

更新如果它有所不同,则始终为用户自定义每封电子邮件.WCF托管在Azure上,Gmail用作邮件程序.

c# .net-4.0 smtpclient

109
推荐指数
5
解决办法
8万
查看次数

如何处理具有异步方法的对象?

我有这个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)

那么,任何想法或工作?

.net c# dispose asynchronous idisposable

14
推荐指数
1
解决办法
6852
查看次数

标签 统计

c# ×2

.net ×1

.net-4.0 ×1

asynchronous ×1

dispose ×1

idisposable ×1

smtpclient ×1