我已经创建了自己的方式来本质上仅在每个异步方法的顶部设置一次ConfigureAwait(false),这使我不必在每个await调用的末尾附加ConfigureAwait(false)。现在,我可以做类似的事情:
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);