gpt4 book ai didi

c# - 如何在设定时间后处理可观察对象?

转载 作者:太空狗 更新时间:2023-10-29 22:36:14 28 4
gpt4 key购买 nike

我有一个 Observable,它每 2 秒以固定速率向某个观察者发送数据。我想要一种方法,在 2 分钟过去后,发送数据的 Observable 将在告诉主题它已完成后自行处理。我使用了 2 个计时器,一个以 2 秒为间隔发出数据,另一个以 2 分钟的总持续时间发出数据,因此它可以发送 OnComplete。我想知道是否有一种方法可以在使用计时器完成 2 分钟后自行处理?

我的代码看起来像这样:

Observable.Create<>(
observer =>
{
var timer = new Timer();
timer.Elapsed += (s, e) => observer.OnNext( *send some string* );
timer.start();
return Disposable.Empty;
}
)

最佳答案

其实很简单。只需这样做:

Observable
.Interval(TimeSpan.FromSeconds(2.0))
.TakeUntil(Observable.Timer(TimeSpan.FromMinutes(2.0)))
.Subscribe(x =>
{
});

这将在 2 分钟后自动结束 observable 并为您完成所有取消订阅。

关于c# - 如何在设定时间后处理可观察对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39583505/

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