【发布时间】:2017-02-27 09:05:53
【问题描述】:
我试图异步发送邮件,但我没有使用 asycn 邮件,而是在我调试代码时使用 Parallel.Invoke(() => {}),然后我不是异步的,因为我在 Parallel.Invoke 之后的下一个喜欢是块单元,邮件不是发送。
这是我的示例代码
Parallel.Invoke(() =>
{
var template = new MailTemplate()
.WithBody("my sample body")
.WithSubject("sample sub")
.WithSender("test1@fakesite.com")
.WithRecepient("test2@fakesite.com")
.WithAttachment(filepath)
.Send();
});
oLog.Save("no of job sone " + jbcount, false);
我想承认我的邮件发送程序不是异步的,但我使用Parallel.Invoke
异步调用这些行,但是当我调试时,我看到 oLog.Save 在发送邮件之前没有被调用。
所以告诉我如何异步运行几行代码,结果Parallel.Invoke 之后的代码不应该被阻塞。
【问题讨论】:
-
使用
Task.Run()而不是Parallel.Invoke()。 (题外话:WithRecepient() 拼写错误...) -
@MatthewWatson 非常感谢它就像一个魅力。 :)
标签: c# winforms asynchronous task-parallel-library