gpt4 book ai didi

c# - 有没有办法将观察者订阅为异步

转载 作者:太空宇宙 更新时间:2023-11-03 17:08:05 24 4
gpt4 key购买 nike

给定一个同步观察者,有没有办法做到这一点:

observable.SubscribeAsync(observer);

observer 上的所有方法都是异步调用的,还是我在创建观察者时必须处理的事情?

最佳答案

如果您需要在流吐出新值时调用异步方法,您会发现最常见的解决方案是使用 SelectMany。问题是这不会等待方法完成,导致 SelectMany 创建的任何任务并行运行。

如果您想在等待异步函数完成时阻止流,则需要以下内容:

Observable.Interval(TimeSpan.FromSeconds(1))
.Select(l => Observable.FromAsync(asyncMethod))
.Concat()
.Subscribe();

或者:

Observable.Interval(TimeSpan.FromSeconds(1))
.Select(_ => Observable.Defer(() => asyncMethod().ToObservable()))
.Concat()
.Subscribe();

关于c# - 有没有办法将观察者订阅为异步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18814805/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com