에서 이 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>
. 그런 다음 부서가 즉시 null인지 확인합니다. 내가 이해하는 것처럼이 방법으로 Task 값을 요청하면 대기중인 메소드의 값이 반환 될 때까지 코드 실행 이 차단되어 효과적으로 동기 호출이됩니다.
왜 이렇게 하시겠습니까? Find(id)
어쨌든 즉시 차단하려는 경우 동기 메소드를 호출하는 것이 더 간단하지 않습니까?
... else return null;
그런 다음 메소드가 실제로 요청한 부서를 찾았는지 확인해야합니다.