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