Re[9]: [.NET][async][WinForms]
От: Sinix  
Дата: 22.12.16 09:32
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>>Первое правило любого предложения в стиле "а давайте сделаем так": посмотри на последствия.

S> Я как раз и смотрю и вижу косяки.
Не вопрос, какие именно косяки?


S> Большинство клиентского кода как раз потому, что сделали ConfigureAwait(true) по умолчанию и никто не знает про существование ConfigureAwait. И весь интернет усыпан вопросами о дедлоках.

А можно пример? Есть такое подозрение, что проблема там не в ConfigureAwait(), а в исчерпании потоков, доступных для запуска продолжений. Так это и с ConfigureAwait(false) можно устроить, дурное дело нехитрое


S>При этом не везде в клиентском коде нужно переключатся на поток контекста.

По умолчанию — везде. Если, конечно, не хочется ловить баги типа "опс, культура не та" в самом неожиданном месте.

S> При этом в ошибки установки свойств контрола в не потоке GUI можно возвращать ошибку про использовании ConfigureAwait, а с дедлоком вообще ничего не выдается.

Не вопрос, давай с всё тем же кодом из примера выше. Есть идеи, как заставить его выдавать ошибку стандартными средствами фреймворка? Не ломая совместимости.
Напоминаю, исключение по факту бросается в фоновом потоке.

И после этого — как быть с ошибками, не связанными с обращением к UI?

S> Правлю.

Спасиб
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.