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?

questionAnswers(3)

yourAnswerToTheQuestion