Сообщение 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), что приводит к дедлокам
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), что приводит к дедлокам
S>> Еще раз в чем вредный совет про .ConfigureAwait(false)?
TK>Если есть код который может выполняться в отдельном планировщике то и запускать его там стоит явно. А вот распихивать по коду ConfigureAwait(false) в надежде так то, что оно по какой-то удаче продолжит выполняться где-то еще — решение так себе.
.ConfigureAwait(false) гарантирует, что будет игнорироваться Контекст синхронизации. Только и всего.
S>> Учитывая, что твоя библиотека может использоваться в GUI
TK>Ну это до первого Callback в GUI
И в чем проблема? .ConfigureAwait(false) гарантирует что будет игнорироваться Контекст синхронизации, и не будет переключаться на поток GUI.
Просто по умолчанию .ConfigureAwait(true), что приводит к дедлокам