【发布时间】:2016-10-15 05:22:49
【问题描述】:
我面临一个普遍的问题,我找不到一个很好的例子来亲自尝试。 Google 也无济于事。
想象一下这样的结构:
MailMessage mail = new MailMessage(sender, receiver);
using(SmtpClient client = new SmtpClient())
{
client.Host ...
client.Port ...
mail.subject ...
mail.body ...
client.SendAsync(mail);
}
如果服务器很慢并且需要一段时间才能接受邮件怎么办。 SmtpClient 是否可能在操作完成之前被处置?它会以任何方式被取消或破坏吗?
对此有通用答案吗?这里的服务器太快了,不知道怎么试玩。
如果考虑取消BackgroundWorker,它总是会完成当前操作。这里可能是一样的,也可能不是……
【问题讨论】:
-
是的,此代码将在发送电子邮件之前处理
client。这可能很糟糕。
标签: c# asynchronous dispose using-statement