5
我想異步運行一些對象的初始化,但有些對象依賴於其他被初始化的對象。然後在我的應用程序的其餘部分繼續之前,所有對象都需要進行初始化。您可以多次調用任務的Wait()嗎?
是否有可能在任務上調用Wait(),然後再次對其調用Wait(),或者在包含它的集合中對WaitAll()進行調用?
Dictionary<String, Task> taskdict = new Dictionary<String, Task>();
taskdict.Add("Task1",
Task.Factory.StartNew(() => {
//Do stuff
}));
taskdict.Add("Task2",
Task.Factory.StartNew(() => {
taskdict[ "Task1" ].Wait();
//Do stuff
}));
try {
Task.WaitAll(taskdict.Values.Convert<Task[ ]>());
}
或者第二個Wait()/ WaitAll()會失敗嗎?
感謝您的明確答案。有關異常處理的詳細信息。這是我必須考慮的一個重要問題。 – 2013-04-25 09:24:05
@Servy如果我想讓任務重新運行,請等待。我怎樣才能使任務結果失效? – 2016-07-30 07:40:08
@MerdanGochmuradov你不能。這不是如何工作的。 – Servy 2016-08-01 01:49:24