Ho diversi compiti da leggere da diversi file e trovare una parola in loro. Li ho messi in un array compito che comincio con metodo WaitAny come segue:Come interrompere tutte le attività quando si è finito in C#
foreach (string file in filesList)
{
files[i] = Task.Factory.StartNew(() =>
{
mySearch.Invoke(file);
});
i++;
}
System.Threading.Tasks.Task.WaitAny(files);
Vorrei smettere di tutte le altre attività, non appena uno dei compiti finiture (termina quando fonda la parola). Per il momento, con waitany, posso sapere quando finisce uno dei compiti, ma non so come potrei sapere quale è finito e come fermare altri compiti. Quale sarebbe il modo migliore per raggiungere questo obiettivo?
L'attività completata lascia un risultato da qualche parte? Ciò potrebbe includere l'identificazione del compito. La prima attività da completare potrebbe anche impostare un evento, controllato da ogni attività nel suo ciclo principale, che causerebbe l'uscita di tutte le altre attività. – HABO
in mySearch.Invoke, il loro dovrebbe essere un ciclo iterare di parola in parola. È quindi possibile aggiungere un flag in modo che il loop si interrompa quando viene segnalata la bandiera, quando qualsiasi attività trova la parola, è possibile segnalare la bandiera – ComfortablyNumb