Я создал свой собственный способ по существу устанавливать ConfigureAwait (false) только один раз в верхней части каждого асинхронного метода, что позволяет мне не добавлять приложение ConfigureAwait (false) в конце каждого вызова await. Теперь я могу сделать что-то вроде:
public async Task MyMethod()
{
await ConfigureAwait.Off;
var data = await _client.GetDataAsync();
}
Вот проблема: у меня очень большое решение, и я сейчас пытаюсь найти эффективный способ добавить это к любому асинхронному методу и удалить любые избыточные вызовы .ConfigureAwait (false). Я пытался найти шаблон Resharper без какой-либо удачи. Любые идеи или предложения приветствуются.
Это ниже не работает вообще, используя resharpers Поиск шаблона:
Шаблон поиска:
public async Task $method$($args1$) { $stmt$ }
Заменить шаблон:
public async Task $method$($args1$)
{
await ConfigureAwait.Off;
$stmt$
}
Примечание: Это также не учитывает асинхронные методы, которые уже могут определить его, а также удаление любых избыточных .ConfigureAwait (false);