如果我这样做:
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 次 |
| 最近记录: |