10得票4回答
响应式扩展:缓冲直到订阅者空闲

我有一个程序,接收事件并希望批量处理它们,以使在处理当前批次时进来的所有项目都会出现在下一批中。 Rx 中简单的 TimeSpan 和基于计数的 Buffer 方法会给我多个项目批次,而不是给我一个包含所有已进入内容的大型批次(当订阅者的时间超过指定的 TimeSpan 或更多的 N 项进入...

8得票4回答
用响应式扩展包装一个文件监视器

我一直在研究将文件监视器包装成一个可观察对象,以帮助处理事件,但我在如何获得所需的行为方面遇到了一些麻烦。文件监视器监视一个目录,将文件放入其中。当文件首次放入该目录时,文件监视器会触发Created事件。但是,如果文件很大或网络连接很慢,则会触发一系列Changed事件,因为文件正在更新。在...

34得票2回答
使用Reactive Extensions进行调试的技巧?

我正在寻找关于如何使RX更易于调试的想法。当源通过组合器、限流器、发布者等步骤时,很难找到故障点。 到目前为止,我一直在做与复杂Enumerable链类似的事情-插入Do()进行跟踪,为匿名类型添加“名称”字段,有时抓取堆栈跟踪......但是我们的系统中可能有数百个生产者和数千个消费者,现...

11得票3回答
有用或非平凡双界面的例子

最近,Erik Meijer和其他人展示了IObservable/IObserver是IEnumerable/IEnumerator的对偶。它们是对偶的事实意味着任何一个接口上的操作在另一个接口上都是有效的,因此为Reactive Extentions for .Net提供了理论基础。 是否...

7得票2回答
Rx和任务 - 当新任务产生时取消正在运行的任务?

我有一个用户交互场景,我想用 Rx 来处理。 该场景类似于经典的“当用户停止输入时,执行一些操作”(通常是搜索到目前为止用户已键入的内容) (1) - 但我还需要: (2) 仅获取“执行某些操作”单元的最新结果(见下文) (3) 当启动新的工作单元时,取消正在进行中的任何工作(在我的情况...

28得票2回答
等待可观察对象的结果

所以在C# 4.0的不幸日子里,我创建了以下"WorkflowExecutor"类,通过对IEnumerable的"yield return"继续进行黑客攻击,允许在GUI线程中执行异步工作流,等待可观察对象。因此,以下代码将在button1Click时启动一个简单的工作流程,更新文本,等待您...

14得票4回答
Rx.NET中的System.CoreEx.dll文件在哪里?

这可能看起来是一个愚蠢的问题,但我从这里下载了.NET的响应式扩展:http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx 这个简单示例给我带来了构建错误: var test = new[] { 1, 2, 4, 5 }; test.ToOb...

13得票2回答
.NET中的Observable:在后台线程上使用'ObserveOn'方法

我正在尝试使用 .net 的 Observable 类实现一个简单的观察者模式。我的代码看起来像这样:Observable.FromEventPattern<PropertyChangedEventArgs>( Instance.User, "PropertyCha...

7得票2回答
如何在Silverlight中使用响应式扩展(Rx)来组织这些调用?

我有一些必须按顺序执行的调用。考虑一个包含查询和加载方法的 IService 接口。查询提供了一个小部件列表,而加载提供了一个“默认”小部件。因此,我的服务看起来像这样。 void IService.Query(Action<IEnumerable<Widget>,Exce...

7得票5回答
如果第一个IObservable为空,请切换到另一个IObservable。

我正在编写一个函数,用于检索有关某个主题的新闻,并通过IObservable返回值反馈这些新闻。 然而,我有几个新闻来源。我不想使用Merge将这些来源组合成一个。相反,我想按优先级对它们进行排序 - 1. 当我的函数被调用时,将查询第一个新闻源(它会生成表示该源的IObservable)...