Voglio eseguire le inizializzazioni di alcuni oggetti in modo asincrono, ma alcuni oggetti dipendono da altri che vengono inizializzati. E quindi tutti gli oggetti devono essere inizializzati prima che il resto della mia applicazione continui.È possibile chiamare Wait() su un'attività più volte?
È possibile chiamare Wait() su un'attività e successivamente richiamare Wait() su di esso o come nel mio esempio WaitAll() su una raccolta in cui è incluso?
Dictionary<String, Task> taskdict = new Dictionary<String, Task>();
taskdict.Add("Task1",
Task.Factory.StartNew(() => {
//Do stuff
}));
taskdict.Add("Task2",
Task.Factory.StartNew(() => {
taskdict[ "Task1" ].Wait();
//Do stuff
}));
try {
Task.WaitAll(taskdict.Values.Convert<Task[ ]>());
}
Oppure quel secondo Wait()/WaitAll() non riesce?
Grazie per una risposta chiara. E per i dettagli sulla gestione delle eccezioni. Questa è una questione importante che devo considerare. –
@Servy e se voglio che l'attività venga eseguita, in attesa. Come posso invalidare il risultato dell'attività? –
@MerdanGochmuradov Non puoi. Non è così che funzionano le attività. – Servy