Trong bài viết MSDN này , mã ví dụ sau được cung cấp (được chỉnh sửa một chút cho ngắn gọn):
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);
}
Các FindAsync
phương pháp lấy một Department
đối tượng bằng ID của nó, và trả về một Task<Department>
. Sau đó bộ phận được kiểm tra ngay lập tức để xem nếu nó là null. Theo tôi hiểu, việc yêu cầu giá trị của Nhiệm vụ theo cách này sẽ chặn thực thi mã cho đến khi giá trị từ phương thức chờ được trả về, thực sự biến đây thành một cuộc gọi đồng bộ.
Tại sao bạn sẽ làm điều này? Sẽ không đơn giản hơn nếu chỉ gọi phương thức đồng bộ Find(id)
, nếu bạn định chặn ngay lập tức?
... else return null;
Sau đó, bạn cần kiểm tra xem phương thức đó có thực sự tìm thấy bộ phận bạn yêu cầu không.