如果我这样做:
public async Task<SendEmailServiceResponse> ExecuteAsync(SendEmailServiceRequest request)
{
....
var response = new SendEmailServiceResponse();
await client.SendAsync(mail, null); // Has await
response.success = true;
return response;
}
Run Code Online (Sandbox Code Playgroud)
然后我明白了:
无法等待'无效'
但如果我这样做:
public async Task<SendEmailServiceResponse> ExecuteAsync(SendEmailServiceRequest request)
{
....
var response = new SendEmailServiceResponse();
client.SendAsync(mail, null); // No Await
response.success = true;
return response;
}
Run Code Online (Sandbox Code Playgroud)
我明白了:
异步方法缺少'await'并将同步运行.
我显然缺少一些东西,只是不确定是什么.
正如其他人所指出的那样SendAsync
有点误导.它返回一个void
,而不是一个Task
.如果要await
发送邮件,则需要使用该方法
SendMailAsync(MailMessage message)
Run Code Online (Sandbox Code Playgroud)
要么
SendMailAsync(string from, string recipients, string subject, string body)
Run Code Online (Sandbox Code Playgroud)
这两个都返回Task
并且可以等待
归档时间: |
|
查看次数: |
1176 次 |
最近记录: |