Информация об изменениях

Сообщение Re[10]: [.NET][async][WinForms] от 22.12.2016 7:13

Изменено 22.12.2016 9:01 Serginio1

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

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


_R_>>>Люблю себя цитировать: "В многопоточности и асинхронности взаимодействие с GUI отнюдь не единственная и не самая сложная задача."

S>> При этом данный вопрос относится к GUI.
S>> Еще раз в чем вредный совет про .ConfigureAwait(false)?

TK>Если есть код который может выполняться в отдельном планировщике то и запускать его там стоит явно. А вот распихивать по коду ConfigureAwait(false) в надежде так то, что оно по какой-то удаче продолжит выполняться где-то еще — решение так себе.


.ConfigureAwait(false) гарантирует, что будет игнорироваться Контекст синхронизации. Только и всего.



S>> Учитывая, что твоя библиотека может использоваться в GUI


TK>Ну это до первого Callback в GUI


И в чем проблема? .ConfigureAwait(false) гарантирует что будет игнорироваться Контекст синхронизации, и не будет переключаться на поток GUI.
Просто по умолчанию .ConfigureAwait(true), что приводит к дедлокам
Re[10]: [.NET][async][WinForms]
Здравствуйте, TK, Вы писали:


S>> Еще раз в чем вредный совет про .ConfigureAwait(false)?


TK>Если есть код который может выполняться в отдельном планировщике то и запускать его там стоит явно. А вот распихивать по коду ConfigureAwait(false) в надежде так то, что оно по какой-то удаче продолжит выполняться где-то еще — решение так себе.


.ConfigureAwait(false) гарантирует, что будет игнорироваться Контекст синхронизации. Только и всего.



S>> Учитывая, что твоя библиотека может использоваться в GUI


TK>Ну это до первого Callback в GUI


И в чем проблема? .ConfigureAwait(false) гарантирует что будет игнорироваться Контекст синхронизации, и не будет переключаться на поток GUI.
Просто по умолчанию .ConfigureAwait(true), что приводит к дедлокам