调用 Polly ExecuteAsync 方法的正确方法是什么?

What is the correct way to call Polly ExecuteAsync method?

执行策略,我看到有人这样调用 ExecuteAsync:

...
.ExecuteAsync(async (ct) => await GetEmployeeAsync(employeeId, ct), cancellationToken);

像这样:

...
.ExecuteAsync(ct => GetEmployeeAsync(employeeId, ct), cancellationToken);

有什么区别,应该使用哪一个?

在这个简单的例子中,没有语义差异。省略 asyncawait 的版本具有几乎不可估量的性能优势。

一般情况下,有一些pitfalls when eliding async and await。作为一般规则,如果代码做了任何重要的事情,那么你应该保留 asyncawait。如果代码真的很简单,则只省略 async/await - 就像在这种情况下,当委托只在 GetEmployeeAsync.

上绑定 employeeId