Async Task замораживает пользовательский интерфейс
У меня есть такой метод:
private async Task DoSomething()
{
// long running work here.
}
Когда я вызываю такой метод, он блокирует пользовательский интерфейс:
Task t = DoSomething();
Я должен сделать один из них, чтобы сделать его неблокирующим:
Task t = new Task(() => DoSomething());
t.Start();
// Or
Task t = Task.Factory.StartNew(() => DoSomething());
Так какой смысл в асинхронности / ожидании, когда вы можете просто использовать Задачи, как они были в framework 4, и использоватьTask.Wait()
на местеawait
?
РЕДАКТИРОВАТЬ: Я понимаю все ваши ответы, но ни один из них не касается моего последнего абзаца. Кто-нибудь может дать мне пример многопоточности на основе задач, где async / await улучшает читаемость и / или поток программы?