因为async调用时所启用的线程,是线程池的线程。 而线程池的线程,是后台线程。 所谓后台线程,是进程退出后,立即退出的线程。 所以邮件有可能还没发出去线程就被关闭了。 解决的方法: 1、系统退出时,你自己增加判断,比如使用待发数累计,发送成功+失败累计数,在程序退出时判断两个累计数相等,系统才能退出。 2、不要用async调用,使用同步调用。然后自己手动开启Thread线程,来进行邮件发送。手动开启的线程,是前台线程,在进行退出时,会等待线程执行完成后,进行才彻底退出。
110,539
社区成员
642,577
社区内容
加载中
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧