Re[3]: wpf, выполнение действий в разных потоках
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 14.07.16 13:26
Оценка:
Здравствуйте, alex1010, Вы писали:

A>Здравствуйте, Serginio1, Вы писали:


S>>http://ru.stackoverflow.com/questions/514529/%d0%97%d0%b0%d0%b2%d0%b8%d1%81%d0%b0%d0%b5%d1%82-%d0%be%d0%bf%d0%b5%d1%80%d0%b0%d1%82%d0%be%d1%80-await-%d0%b2-%d0%be%d0%ba%d0%be%d0%bd%d0%bd%d0%be%d0%bc-%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d0%b8-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d0%b0-%d0%b2%d0%b8%d1%81%d0%b8%d1%82-%d0%bf%d1%80%d0%b8-%d0%b2%d1%8b%d0%b7%d0%be%d0%b2%d0%b5-task/514533#514533


A>интересно, но как это поможет решить проблему, не понял (


A>Bar().Wait();

A>await Task.Delay(1000); // здесь как бы вывод на экран
A>такого в нашем коде и нет — нет Wait, о котором статья.

A>Просто использование await не работает, т.к в этом await идет отрисовка через synhronizationContext UI. И когда там подвисает, то подвисает и все приложение.

A>При этом имеющаяся видеопанель как-то ухитряется не виснуть, хотя код модуля с await тот же самый.

await Task.Delay(1000).ConfigureAwait(false); // Не блокирует и заканчивает поток в том потоке в котором и вызван.


Создавай задачи, главное, что бы они использовали внутри асинхронные методы только с ConfigureAwait(false);
Иначе получишь взаимную блокировку.

http://ru.stackoverflow.com/questions/512968/win10-universal-app-async-%d0%b7%d0%b0%d0%b4%d0%b5%d1%80%d0%b6%d0%ba%d0%b0/513241#513241
и солнце б утром не вставало, когда бы не было меня
Отредактировано 14.07.2016 13:55 Serginio1 . Предыдущая версия . Еще …
Отредактировано 14.07.2016 13:54 Serginio1 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.