async Task zamroził interfejs użytkownika
Mam taką metodę:
private async Task DoSomething()
{
// long running work here.
}
Gdy wywołam taką metodę, blokuje interfejs użytkownika:
Task t = DoSomething();
Muszę zrobić jedną z nich, aby nie blokować:
Task t = new Task(() => DoSomething());
t.Start();
// Or
Task t = Task.Factory.StartNew(() => DoSomething());
Więc jaki jest cel async / czekać, kiedy można po prostu użyć zadań, tak jak były w ramach 4 i używaćTask.Wait()
zamiastawait
?
EDYCJA: Rozumiem wszystkie twoje odpowiedzi - ale żadna naprawdę nie odnosi się do mojego ostatniego akapitu. Czy ktoś może dać mi przykład wielowątkowości opartej na zadaniach, w której async / oczekuje na poprawę czytelności i / lub przepływu programu?