Dan*_*iel 22 c# system.net.mail smtpclient
我正在尝试使用SmtpClient在.NET中编写通知服务(用于完全合法的非垃圾邮件目的).最初我只是通过每个消息循环并发送它,但这很慢,我想提高速度.所以,我切换到使用'SendAsync',但现在第二次调用时出现以下错误:
An asynchronous call is already in progress.
Run Code Online (Sandbox Code Playgroud)
我读到这意味着MS瘫痪System.Net.Mail以防止群发邮件.它是否正确?如果是这样,有没有更好的方法在.NET中执行此操作,并且仍然能够记录每封电子邮件的结果(这对我们的客户来说很重要).如果没有,为什么SendAsync只能被调用一次?
您可以使用以下内容:
ThreadPool.QueueUserWorkItem(state => client.Send(msg));
Run Code Online (Sandbox Code Playgroud)
这应该允许您的消息排队并在线程可用时发送.