我有不同的任務從不同的文件中讀取並找到一個單詞。我已經把它們放入一個任務數組,我開始了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