According to an article in MSDN Magazine, это самая лучшая практика: «Используйте ConfigureAwait(false)
, когда сможете». Кроме того, в нем говорится: «Если вы можете использовать ConfigureAwait
в какой-то момент в методе, я рекомендую вам использовать его для каждого ожидания в этом методе после этой точки». Stephen Cleary, автор этой статьи, states on his blog, что «В вашей библиотеке ' асинхронных методов используйте ConfigureAwait (false), где возможно [курсив добавлен]».Set ConfigureAwait (false) для всего проекта/dll
Учитывая, что большинство или все мои await
заявления в проекте библиотеки, которая предназначается, чтобы быть широко использованы, должны иметь .ConfigureAwait(false)
это можно сделать что-то/изменить настройки, чтобы сделать это так, что поведение по умолчанию ждут в моем проекте/dll не продолжать в захваченном контексте? То есть, чтобы я мог опустить все звонки на .ConfigureAwait(false)
и вместо этого добавить .ConfigureAwait(
)
10 только тогда, когда мне нужен контекст, который нужно сохранить.
Это было бы полезно, если бы был атрибут, который мы могли бы применить к классу или функции, которая указала значение по умолчанию ConfigureAwait. –
Может быть хорошо протестировать ConfigAwait (false) в любой тестовой среде. Любой знает, существует ли такая функциональность в любых рамках. –
@AbdulSaboor: В наши дни есть анализаторы кода, которые могут заставить вас всегда использовать 'ConfigureAwait' (либо' true', либо 'false'), чтобы сделать его явным. Я лично их не использую, но я вижу их выгоду, особенно в более крупных командах. –