我有不同的任务从不同的文件中读取并找到一个单词。我已经把它们放入一个任务数组,我开始了WaitAny方法如下:如何在c中完成一个任务时停止所有任务#
foreach (string file in filesList)
{
files[i] = Task.Factory.StartNew(() =>
{
mySearch.Invoke(file);
});
i++;
}
System.Threading.Tasks.Task.WaitAny(files);
我想尽快的任务之一完成停止所有其他任务(当它开创这个词它完成)。目前,有了waitany,我可以知道一项任务何时完成,但我不知道如何知道哪一项已完成,以及如何停止其他任务。 达到此目的的最佳方法是什么?
完成的任务是否在某处留下了结果?这可能包括确定任务。完成的第一个任务还可以设置一个事件,由其主循环中的每个任务检查,这会导致所有其他任务退出。在mySearch.Invoke中的 – HABO
,它们应该是循环逐字地循环。 然后,您可以添加一个标志,以便在标志发出信号时循环中断,当任何任务发现该字时,可以发信号通知标志 – ComfortablyNumb