Thread ThreadWindow = new Thread(async () =>
{
WindowWPF windowWPF = new WindowWPF();
windowWPF.Show();
await Task.Run(() =>
{
while (true)
{
//code
}
});
//code works when it shouldn't be available
});
出于某種原因,編譯器建議將最后一行更改為我:這是});為了}){};什么?
這個想法是顯示加載視窗并并行處理資料,之后視窗應該關閉。
uj5u.com熱心網友回復:
它不會,一旦await被擊中,Task就會回傳一個不完整的,并且如果它是一個運行時間有點長的作業,則其中的作業await將作為回呼回傳。future
當您while(true)使這段代碼無限執行時,假設您正在嘗試這樣做call and forget way,如果是這樣,請不要使用await. 另外,不要創建,而是new Thread嘗試使用Task如下
var task = new Task(() => MyLongRunningMethod(),
TaskCreationOptions.LongRunning | TaskCreationOptions.PreferFairness);
task.Start();
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/444723.html
上一篇:餐飲哲學家多執行緒沒有結束
