[英]Async and Await Action methods.Not working asynchronously. Don't know the reason?
我正在使用異步操作方法:
public async Task<JsonResult> SetMaterialRequisitionNoteStatus(List<Guid> ids, string statusName, Guid statusId)
{
string resp = string.Empty;
resp = await note.GeneratePartLifeNotifications_ORN(repairNote, "Outsourced Repair Note " + statusName);
if (responce.ToLower() != "ok")
{
responce = responce.Replace("Workorder", "Outsource repair note");
sendNotification(responce);
}
Utilities.SaveEntityInstance(note);
......
}
但是我的代碼無法異步工作。 等待調用旁邊的行等待,直到我們從GeneratePartLifeNotifications_ORN
方法獲得結果。 它以相同的同步代碼工作。 我想要異步行為。
等待調用旁邊的行等待,直到我們從generatePartLifeNotifications_ORN方法獲得結果。
好吧,您期望什么? await
將異步執行該方法,並將釋放當前線程以在其他地方進行工作。 當該異步任務完成時,線程將返回以從那里選擇函數執行結果(除非您指定.ConfigureAwait(false)
,否則任何線程都可以選擇執行)。
“等待”的含義類似於“等待”,因此執行正在等待該方法完成,但是剩下的線程可以在其他地方工作,而不是在等待。
如果以同步方式執行此操作,則執行順序將相同,但是將阻止調用線程,等待GeneratePartLifeNotifications_ORN
完成。 異步的神奇之處在於,它允許線程在其他地方工作,而不是等待正在發生的事情(例如Web服務或數據庫)。
干杯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.