SmtpClient client = new SmtpClient("my.server.com");
Run Code Online (Sandbox Code Playgroud)
我像往常一样创建客户端并发送电子邮件.一切正常,电子邮件正确地到达框中.
我还想在SendCompleted事件处理程序中的代码中做一些工作.
client.SendCompleted += client_SendCompleted;
Run Code Online (Sandbox Code Playgroud)
我没有async选项就开始工作了,
client.Send(message);
Run Code Online (Sandbox Code Playgroud)
但这样,我的处理程序代码永远不会被击中.
如果我选择client.SendAsync(),事件处理程序将被执行,但我必须做一些同步才能使它正确,也许有一个更简单的方法来实现它.
所以我的问题是,当我使用send而不是异步时,没有点击处理程序是正常的吗?
如果要同步发送,则完成的处理程序将永远不会触发,因为只有异步调用才会触发关联的事件.
在同步调用中,只需在调用Send后放入您在处理程序中放入的代码:
client.Send(message);
//TODO: Put your handler code here.
Run Code Online (Sandbox Code Playgroud)