同步 SmtpClient send,未命中 SendDone 处理程序

本文关键字:SendDone 处理 程序 SmtpClient send 同步 | 更新日期: 2023-09-27 18:27:14

 SmtpClient client = new SmtpClient("my.server.com");

我像往常一样创建客户端并发送电子邮件。一切正常,电子邮件正确到达框中。

我仍然想在 SendCompleted 事件处理程序中的代码中做一些工作。

  client.SendCompleted += client_SendCompleted;

我在没有异步选项的情况下开始工作,

client.Send(message);

但这样,我的处理程序代码永远不会被命中。

如果我选择客户。SendAsync((,事件处理程序被执行,但我必须做一些同步才能让它正确,也许有一种更简单的方法。

所以我的问题,当我使用不同步的发送时,不点击处理程序正常吗?

同步 SmtpClient send,未命中 SendDone 处理程序

如果同步发送,则已完成的处理程序将永远不会触发,因为关联的事件仅针对异步调用触发。

同步调用中,只需在调用 Send 后放入处理程序中的任何代码:

client.Send(message);
//TODO: Put your handler code here.