Chcę uruchamiać inicjacje niektórych obiektów asynchronicznie, ale niektóre obiekty zależą od zainicjowania innych. A następnie wszystkie obiekty muszą zostać zainicjalizowane, zanim reszta mojej aplikacji będzie kontynuowana.Czy można wielokrotnie wywoływać funkcję Czekaj() na zadanie?
Czy można wywołać funkcję Czekaj() na zadaniu, a następnie wywołać ponownie funkcję Czekaj(), lub jak w moim przykładzie WaitAll() w kolekcji, w której jest ona zawarta?
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[ ]>());
}
Czy to drugie niepowodzenie Wait()/WaitAll()?
Dzięki za jasną odpowiedź. I szczegóły dotyczące obsługi wyjątków. To jedna ważna kwestia, którą muszę wziąć pod uwagę. –
@Servy co jeśli chcę, aby zadanie zostało uruchomione, na drugi czas oczekiwania. Jak mogę unieważnić wynik zadania? –
@MerdanGochmuradov Nie możesz. Nie tak działają zadania. – Servy