,我讀了這裏http://blog.stephencleary.com/2012/02/async-and-await.html如何確定作業異步/等待
這種引導線的狀態在這裏我得到了一些夫婦的代碼,但不是很清楚,我。
1)
public async Task DoOperationsInParallelAsync()
{
Task[] tasks = new Task[3];
tasks[0] = DoOperation0();
tasks[1] = DoOperation1();
tasks[2] = DoOperation2();
// At this point, all three tasks are running in parallel.
// Now, we await them all.
await Task.WhenAll(tasks);
}
在上面
我們正在創建多個任務,但假設,當所有任務運行,那麼平行DoOperation2()可完成第一和DoOperation0(),最後DoOperation1()完成。如果我想顯示消息像DoOperation2()在控制檯窗口中完成,那麼我怎麼能做到這一點。我怎麼能檢測到多個運行時哪個任務完成。
2)當我們在async/await的幫助下運行任何函數時,它會作爲後臺線程還是前臺線程運行。
3)
public async Task<int> GetFirstToRespondAsync()
{
// Call two web services; take the first response.
Task<int>[] tasks = new[] { WebService1(), WebService2() };
// Await for the first one to respond.
Task<int> firstTask = await Task.WhenAny(tasks);
// Return the result.
return await firstTask;
}
我不明白爲什麼人寫等待的第一個響應。
//等待第一個迴應。 任務firstTask =等待Task.WhenAny(任務);
爲什麼第一個......爲什麼不是第二個,因爲兩個任務在這裏運行。
請指導我,趕走我的困惑。謝謝
我認爲你的一些混亂是由語言造成的:第一個響應並不意味着第一次進入,這意味着首先響應的人將是第一次。 –