Tarefa assíncrona está congelando a interface do usuário
Eu tenho um método como este:
private async Task DoSomething()
{
// long running work here.
}
Quando eu chamo o método assim, ele bloqueia a interface do usuário:
Task t = DoSomething();
Eu tenho que fazer um desses para torná-lo sem bloqueio:
Task t = new Task(() => DoSomething());
t.Start();
// Or
Task t = Task.Factory.StartNew(() => DoSomething());
Então, qual é o ponto de async / esperar quando você pode apenas usar tarefas como eram no quadro 4 e usarTask.Wait()
no lugar deawait
?
EDIT: Eu entendo todas as suas respostas - mas nenhum realmente abordar o meu último parágrafo. Alguém pode me dar um exemplo de multi-threading baseado em tarefas onde async / wait melhora a legibilidade e / ou o fluxo do programa?