[英]Async await thread exception
我對Task
方法和異步等待有大問題。 我有 4 種方法類型:
private async Task Name(parameters)
{
}
以及如何調用所有 4 種方法來並行執行並優化時間執行。 焦點是構造函數。 我嘗試了很多東西。 我在這里放了一些我在構造函數中調用的方式:
1.
Parallel.Invoke(
() => OnLoadPrometDanKorisnikDatum(KorisnikID, PomocnaDnDDatnaDat, DatumVrednost).Wait(),
() => OnLoadPrometNedelja(KorisnikID, PomocnaDnDDatnaDatNedelja).Wait(),
() => OnLoadPrometMesec(KorisnikID, PomocnaVrednostMeseciPicker).Wait(),
() => OnLoadPrometGodina(KorisnikID, 0).Wait()
);
這是可行的,但是當您進入第 2 或第 3 次異常拋出該List
為空時,它從 API(某些方法)獲取數據。
Name
方法時; 那4次不起作用。我不知道該怎么辦。 第一個方法執行大約需要 6.7 秒。 第二種方法是大約 4 秒。 第三個 6 秒。 第四個6秒。
最后需要我並行執行 4 個方法並等待來自該 4 個方法的所有數據。 因為根據這些數據,我稍后會填寫數據圖表。 是空列表拋出異常。
您可以使用Task.WhenAll
讓方法並行執行:
await Task.WhenAll(
OnLoadPrometDanKorisnikDatum(KorisnikID, PomocnaDnDDatnaDat, DatumVrednost),
OnLoadPrometNedelja(KorisnikID, PomocnaDnDDatnaDatNedelja),
OnLoadPrometMesec(KorisnikID, PomocnaVrednostMeseciPicker),
OnLoadPrometGodina(KorisnikID, 0)
);
Task.WhenAll
返回一個新Task
,該Tasks
在所有提供的Tasks
完成后完成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.