La tarea asíncrona está congelando la interfaz de usuario
Tengo un método como este:
private async Task DoSomething()
{
// long running work here.
}
Cuando llamo al método como este, bloquea la interfaz de usuario:
Task t = DoSomething();
Tengo que hacer uno de estos para que no se bloquee:
Task t = new Task(() => DoSomething());
t.Start();
// Or
Task t = Task.Factory.StartNew(() => DoSomething());
Entonces, ¿cuál es el punto de async / await cuando puede usar las Tareas como estaban en el marco 4 y usarTask.Wait()
en lugar deawait
?
EDITAR: Entiendo todas sus respuestas, pero ninguna realmente aborda mi último párrafo. ¿Puede alguien darme un ejemplo de subprocesos múltiples basados en tareas donde async / await mejora la legibilidad y / o el flujo del programa?