Re[8]: [.NET][async][WinForms]
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 22.12.16 08:59
Оценка:
Здравствуйте, Sinix, Вы писали:

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


S>> Я знаю. Именно пишу ConfigureAwait(true), что по уму нужно по умолчанию как раз ConfigureAwait(false), а ConfigureAwait(true) там, где нужно реально переключаться на поток GUI/

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

Я как раз и смотрю и вижу косяки. При этом никто не знает про ConfigureAwait
S>Сейчас await task.ConfigureAwait(true); идентичен по поведению простому await task;. Это решение абсолютно правильно, т.к поведение заточено под конечных пользователей.
S>В твоём варианте большинство клиентского кода или содержало бы баги, или было бы отравлено копипастой с .ConfigureAwait. Это очень плохое решение, поэтому в фреймворк оно не прошло.

Большинство клиентского кода как раз потому, что сделали ConfigureAwait(true) по умолчанию и никто не знает про существование ConfigureAwait. И весь интернет усыпан вопросами о дедлоках.
При этом не везде в клиентском коде нужно переключатся на поток контекста.
При этом в ошибки установки свойств контрола в не потоке GUI можно возвращать ошибку про использовании ConfigureAwait, а с дедлоком вообще ничего не выдается.

S>P.S. Напоминаю:

S>>>P.S. Поправь оверквотинг в ответах. Читать же неудобно

S>Капсом писать что ли?

S>(rsdn позволяет редактировать ответы, если что).

Правлю.
и солнце б утром не вставало, когда бы не было меня
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.