Olarak bu MSDN maddesi , aşağıdaki örnek kodu (biraz kısa tutmak için düzenlenmiş) sağlanmıştır:
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
Yöntem, bir alır Department
kendi kimliği tarafından nesne ve bir döner Task<Department>
. Daha sonra null olup olmadığını görmek için departman hemen kontrol edilir. Anladığım kadarıyla, bu şekilde Görev'in değerini sormak , beklenen yöntemden elde edilen değer geri gelene kadar kod yürütülmesini engeller ve bu da senkronize bir çağrıdır.
Bunu neden yaptın? Find(id)
Yine de hemen engelleyecekseniz , senkronize yöntemi çağırmanız daha kolay olmaz mıydı?
... else return null;
Öyleyse, yöntemin gerçekte istediğiniz bölümü bulduğunu kontrol etmeniz gerekir.