Mam różne zadania do odczytania z różnych plików i znaleźć słowo do nich. Włożyłem je do tablicy zadań, które Zacznę metody waitAny następująco:Jak zatrzymać wszystkie zadania po zakończeniu C#
foreach (string file in filesList)
{
files[i] = Task.Factory.StartNew(() =>
{
mySearch.Invoke(file);
});
i++;
}
System.Threading.Tasks.Task.WaitAny(files);
Chciałbym zatrzymać wszystkie inne zadania, jak tylko jedno z zadań kończy (to kończy, gdy zakłada słowo). W tej chwili, dzięki waitany, mogę wiedzieć, kiedy kończy się jedno zadanie, ale nie wiem, jak mogłem się dowiedzieć, który z nich się zakończył i jak zatrzymać inne zadania. Jaki byłby najlepszy sposób, aby to osiągnąć?
Czy wykonane zadanie pozostawia gdzieś wynik? Może to obejmować identyfikację zadania. Pierwsze zadanie do wykonania może również ustawić zdarzenie, sprawdzane przez każde zadanie w pętli głównej, które spowoduje zakończenie wszystkich innych zadań. – HABO
w mySearch.Invoke, ich pętla powinna być iteracją po słowie. Następnie można dodać flagę tak, aby pętla uległa awarii, gdy flaga jest sygnalizowana, gdy dowolne zadanie znajdzie słowo, możesz zasygnalizować flagę – ComfortablyNumb