jjzjj

IObservable

全部标签

c# - 在基于 Rx 计数的聚合中,将计数重置为超过最大时间间隔

无时间限制的基于计数的过滤IObservablefilteredStream=changes.Buffer(3);如何引入闲置重置?但是如何引入超时TimeSpantooLong以便在两个值之间的间隔超过此最大值时从零重新开始计数? 最佳答案 我认为这就是您所追求的。varlongGap=source.Throttle(tooLong);varfiltered=source.Window(()=>{returnlongGap;})//GivesawindowbetweeneverylongGap.Select(io=>io.Buff

c# - 为什么 IObservable<T>.First() 会阻塞?

我最近一直在努力了解.NET的响应式扩展,但在概念上遇到了一点障碍:我无法弄清楚为什么IObservable.First()会阻塞。我有一些示例代码看起来有点像这样:vara=newListItem(a);varb=newListItem(b);varc=newListItem(c);vard=newListItem(d);varobservableList=newList{a,b,c,d}.ToObservable();varitemA=observableList.First();//NeverreachedAssert.AreEqual(expectedFoo,itemA.Foo

c# - 在冷 IObservable 上暂停和恢复订阅

使用Rx,我希望在以下代码中使用暂停和恢复功能:如何实现Pause()和Resume()?staticIDisposable_subscription;staticvoidMain(string[]args){Subscribe();Thread.Sleep(500);//Secondvalueshouldnotbeshownaftertwoseconds:Pause();Thread.Sleep(5000);//Continueandshowsecondvalueandbeyondnow:Resume();}staticvoidSubscribe(){varlist=newList{

c# - Reactive Extensions (Rx) 可以跨进程或机器边界使用吗?

依稀记得很久以前看到过一些关于这个的讨论,但从那以后就再也没有听到过任何消息。那么基本上您可以在远程机器上订阅IObservable吗? 最佳答案 您可以使用IObservable.Remotable通过.NETRemoting直接从其他机器使用可观察对象。 关于c#-ReactiveExtensions(Rx)可以跨进程或机器边界使用吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questi

c# - 在不重新评估序列的情况下获取 IObservable 中的前一个元素

在IObservable序列中(在ReactiveExtensionsfor.NET中),我想获取前一个元素和当前元素的值,以便我可以比较它们。我在网上找到了一个类似于下面的示例来完成任务:sequence.Zip(sequence.Skip(1),(prev,cur)=>new{Previous=prev,Current=cur})它工作正常,只是它对序列求值两次,我想避免这种情况。您可以看到使用此代码对其进行了两次评估:vardebugSequence=sequence.Do(item=>Debug.WriteLine("Retrievedanelementfromsequence

c# - 为方法创建 IObservable 的好方法是什么?

比方说,我们有一个类:publicclassFoo{publicstringDo(intparam){}}我想创建一个由Do方法生成的值的可观察对象。一种方法是创建一个从Do调用的事件,并使用Observable.FromEvent创建可观察对象。但不知何故,我对仅仅为了任务而创建事件感觉不太好。有更好的方法吗? 最佳答案 马特的回答让我想到了这个:publicclassFoo{privatereadonlySubject_doValues=newSubject();publicIObservableDoValues{get{ret

c# - 何时使用 IEnumerable 与 IObservable?

如何确定方法是否应返回IEnumerable或IObservable?为什么我会选择一种范式而不是另一种? 最佳答案 类型IEnumerable您反复从T的序列中“拉取”的IObservableT的序列正在向您“推”WhywouldIchooseoneparadigmovertheother?您通常不会“选择”一种范式而不是另一种范式。通常一个自然而然地脱颖而出成为正确的选择,而另一个则没有任何意义。例子考虑以下示例:一个巨大的CSV文本文件每行都有一个项目,您希望一次处理一个项目而不是一次将整个文件加载到内存中:IEnumerab

c# - 在 IObservable<T> 接口(interface)中返回 IDisposable 的目的是什么?

我正在阅读HeadFirstDesignPatterns一书,并尽力将代码从他们的Java转换为C#。在这本书讨论了观察者模式之后,它提到Java具有内置的类/接口(interface),.NET4也是如此。所以我开始研究如何正确使用它,除了Subscribe()方法外,我已经弄明白了大部分内容。如果您查看MSDNArticle当您尝试订阅IObserver时,该方法返回一个IDisposable。为什么那是必要的?为什么不只实现一个基于方法参数取消订阅IObserver的方法呢?IresearchedthereasontouseanIDisposableinterface.我也读过这

c# - C# 中的 IObserver 和 IObservable 用于观察者与委托(delegate)、事件

我要做的就是实现观察者模式。所以,我想到了这个解决方案:我们有一个PoliceHeadQuarters,其主要工作是向所有订阅它的人发送通知。假设DSP、Inspector和SubInspector类订阅了PoliceHeadQuarters。使用我写的事件和委托(delegate)publicclassHeadQuarters{publicdelegatevoidNewDelegate(objectsender,EventArgse);publiceventEventHandlerNewEvent;publicvoidRaiseANotification(){varhandler=t

如何品尝iObservable&lt; t&gt;带有反应分子

我有一个可观察到的来源Observablesource和执行功能voidExecute(Tt){....}我想编写一个vactivecommand,该触发时用最新值执行t。当没有可用值时,该命令不应执行看答案///CreateaReactiveCommandthatsamplesasourceobservable.The///sourceisimmediatelysubscribedtosothatwhenthecommand///isexecutedthepreviousvalueisavailabletotheexecution///function.publicstaticReactiv