下面的方法之間是否有區別?一個比另一個更好嗎?在異步方法中返回和等待任務之間的區別
public static async Task SendAsync1(string to, string subject, string htmlBody) {
// ...
await smtp.SendMailAsync(message);
// No return statement
}
public static Task SendAsync2(string to, string subject, string htmlBody) {
// ...
return smtp.SendMailAsync(message);
}
該方法將從MVC控制器方法調用;例如:
public async Task<ActionResult> RegisterUser(RegisterViewModel model)
{
// ...
await Mailer.SendAsync(user.Email, subject, body);
return View(model);
}
也許在2處保持的狀態(通過異步/ AWAIT狀態機構)的成本如果使用SendAsync1,但也許async/await狀態機足夠聰明,可以優化這個問題......只是一個想法,它很有趣。 – brumScouse