【发布时间】:2017-07-20 04:22:30
【问题描述】:
我的理解是async void、should be avoided 和async () => 只是async void 与Action 一起使用时的伪装。
因此,应避免将the Rx.NET Finally operator 与async () => 异步使用,因为Finally 接受Action 作为参数:
IObservable<T>.Finally(async () =>
{
await SomeCleanUpCodeAsync();
};
但是,如果这是不好的做法,那么在我需要异步在 OnCompleted 上关闭网络连接或我的可观察以 OnError 结束的情况下使用的最佳做法是什么?
【问题讨论】:
-
您在此处显示的异步 lambda 是
async void方法,但并非所有异步 lambda 都将是void方法。如果您在预期返回Task方法的上下文中提供异步 lambda,这就是您将得到的。
标签: c# asynchronous async-await system.reactive