У цій статті MSDN наведено наступний приклад коду (трохи відредагований для стислості):
public async Task<ActionResult> Details(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Department department = await db.Departments.FindAsync(id);
if (department == null)
{
return HttpNotFound();
}
return View(department);
}
FindAsync
Метод повертає Department
об'єкт по його ID, і повертає Task<Department>
. Потім відділ негайно перевіряється, чи є він нульовим. Як я розумію, запит на значення Завдання таким чином заблокує виконання коду, поки значення з очікуваного методу не повернеться, фактично зробивши це синхронним викликом.
Навіщо ти коли-небудь це робив? Чи не було б простіше просто викликати синхронний метод Find(id)
, якщо ви все одно негайно заблокуєте?
... else return null;
Тоді вам потрібно буде перевірити, чи справді метод знайшов потрібний вам департамент.