【发布时间】:2016-02-09 18:28:42
【问题描述】:
我的目标是从一个 observable 中获得两个订阅者,但我只对事件流中的最新项目感兴趣。我希望其他人被丢弃。将其视为每 1 秒更新一次且忽略任何中间值的股票价格屏幕。 这是我的代码:
var ob = Observable.Interval(TimeSpan.FromMilliseconds(100)) // fast event source
.Latest().ToObservable().ToEvent();
ob.OnNext += (l =>
{
Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
Thread.Sleep(1000); // slow processing of events
Console.WriteLine("Latest: " + l);
});
ob.OnNext += (l =>
{
Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
Thread.Sleep(1000); // slow processing of events
Console.WriteLine("Latest1: " + l);
// subject.OnNext(l);
});
然而,由于上面的代码,尽管我附加了两个事件(即使您使用订阅表示法也没关系)只有第一个订阅被定期调用。第二个根本不运行。为什么会这样?
【问题讨论】:
标签: c# system.reactive