Fer*_*own 5 .net c# task-parallel-library
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();
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码示例中,我设置了三个任务“a”、“b”、“c”,其中“a”等待“b”等待“c”等待“a”。
显然,WaitAll 然后返回 false,因为不可能完成所有任务。
我的问题是 - 有没有办法使用任务并行库来检测任务在循环中等待的情况,最好是禁止它?
(这是为了让我们通过重用现有任务来检测循环区域)