class Program
{
private static Task[] tasks;
static void Main(string[] args)
{
tasks = new Task[]
{
new Task(() => Task.WaitAll(tasks[1])),
new Task(() => Task.WaitAll(tasks[2])),
new Task(() => Task.WaitAll(tasks[0])),
};
tasks[0].Start();
tasks[1].Start();
tasks[2].Start();
Console.WriteLine(Task.WaitAll(tasks, 5000));
Console.ReadLine();
}
}
在上面的代码示例中,我设置了三个任务"a","b","c",其中"a"等待"b","b"等待"c","c"又等待"a"。
显然,由于所有任务都无法完成,因此WaitAll返回false。
我的问题是 - 是否有任何方法,使用Task Parallel Library,可以检测任务在等待循环中的情况,并且最好禁止它?
(这是为了使我们能够通过重复使用现有任务来检测循环区域)
Task.WaitAll
来等待单个任务? - i3arnon