问题标签 [system.reactive]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
1972 浏览

c# - RX Extensions 是否“解决”了复杂事件驱动编程的问题?

我一直在一个新的财务分析项目中使用 Rx,该项目异步接收所有数据。我对我的个人生产力以及我的基于事件的代码的可理解程度感到非常惊讶(与以前的事件处理程序模型相反,它具有复杂的嵌套 ifs 和随处可见的随机状态变量。)。有没有其他人有机会玩它,如果有,你有什么想法?

0 投票
1 回答
517 浏览

.net - WPF 上的 Silverlight 工具包拖放

Microsoft 是否真的提供了在 WPF 上“正常工作”的 Rx / Silverlight Toolkit DragDrop 的构建?

据我所知,Rx DragDrop 的东西只在 SL 工具包(不是 WPF)中可用。

SL Toolkit 似乎暗示您可以在 WPF(各种#defines)中使用它,但没有提供有关如何操作的更多信息。

如果我只想要 DragDrop 的东西,将它移植到 WPF 是否很容易,或者 100M 行的 SL Toolkit 是否可以随行?

0 投票
1 回答
332 浏览

c# - 拆分一个 IObservable,然后在处理后合并?

在尝试了 IObservables 之后,我决定测试它们是否可以处理通过消息总线传入的消息。基本上我得到一个IObservable<Request>并且Request包含回复响应的必要功能。

在处理过程中,我必须反序列化数据并将其从 Request 转换为包含它实际需要执行的操作的 Command 对象。命令与请求无关。

反序列化后,我将其转换为正确的响应,但是为了发送响应,我需要原始的 Request 对象。我想在保持高代码可读性的同时尝试实现这一点。到目前为止,我已经使用扩展方法和 lambda 表达式来获得以下内容(其中requestsIObservable<Request>

我的问题是,由于Zip函数之前的所有命令都需要时间来处理,Zip如果有恒定的消息流,是否会对同一个输入对象(即原始输入以及单独处理的输入)进行操作。我该如何测试呢?

有没有更好的方法来做到这一点?

0 投票
3 回答
532 浏览

c# - 有用或非平凡的双接口示例

最近 Erik Meijer和其他人展示IObservable/IObserver了. 它们是双重的这一事实意味着一个接口上的任何操作在另一个接口上都是有效的,从而为 .Net 的反应式扩展提供了理论基础IEnumerable/IEnumerator

是否存在其他双接口?我对任何示例都感兴趣,而不仅仅是基于.Net。

0 投票
1 回答
144 浏览

c# - 为什么订阅会相互影响?

我正在试验 RX,并遇到以下问题(至少我认为这是一个问题)。下面的代码创建了一个 observable,并订阅了它两次。我认为订阅应该独立运行,所以下面的代码会在每次按键时输出两行,每个订阅对应一行。但情况并非如此,我总是只获得一个订阅来处理特定的击键,半随机的第一或第二。为什么会发生这种情况以及进行多个观察者的“推荐”方式是什么?

0 投票
2 回答
8260 浏览

system.reactive - Reactive Framework、PLINQ、TPL 和并行扩展如何相互关联?

至少自 .NET 4.0 发布以来,微软似乎在支持并行和异步编程方面付出了很多努力,并且似乎出现了很多围绕此的 API 和库。尤其是最近到处都经常提到以下花哨的名字:

  • 反应式框架,
  • PLINQ(并行 LINQ),
  • TPL(任务并行库)和
  • 并行扩展。

现在它们似乎都是 Microsoft 产品,而且它们似乎都针对 .NET 的异步或并行编程场景。但目前尚不清楚它们中的每一个究竟是什么以及它们之间的关系。有些可能实际上是同一回事。

简而言之,任何人都可以直接说明什么是什么?

0 投票
6 回答
7720 浏览

wpf - 可观察的和 INotifyPropertyChanged - 是否有连接

我了解IObservable<T>&IObserver<T>是观察者模式的实现,可以在与 .Net 事件类似的情况下使用。

我想知道是否有任何关系INotifyPropertyChanged

我目前INotifyPropertyChanged用于 winforms 和 WPF 应用程序中的数据绑定,想知道是否可以在 UI 数据绑定场景中使用 IObservable?

干杯

AWC

0 投票
1 回答
1524 浏览

c# - 使用 ObserveOnDispatcher 进行单元测试

我的视图模型中有一些代码如下:

然后在我的测试中,我“嘲笑”我的服务如下:

问题是由于 ObserveOnDispatcher,订阅委托永远不会执行。

我看过一些带有 DispatcherFrame 和 PushFrame 的代码,但问题是我不知道“在哪里”,我可以调用

0 投票
5 回答
8972 浏览

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

假设我们有一个类:

我想创建一个由Do方法产生的值的可观察值。一种方法是创建一个从Do调用的事件并使用Observable.FromEvent来创建 observable。但不知何故,我对仅仅为了任务而创建一个事件感觉不好。有更好的方法吗?

0 投票
1 回答
1533 浏览

c# - 使用 IObservable 和 Reactive Framework 重写 foreach

我在 VS2008 中使用实体框架。我正在使用 esql 访问数据库中的对象以获取 WHERE IN 功能。我将大量 ID 传递给 select 语句,因此我将其分成 800 个组。然后我将每个块的结果合并在一起。我的目标是并行获取每个块的结果,而不是同步等待。我安装了 Reactive Framework,并且很确定我需要使用 ForkJoin。但是,我不知道如何转换这个函数来使用它。这是我现有的代码:

谢谢!

编辑>>>我修改了代码以使用Poor Man,如下所示:

第一次效果很好。但是我第二次运行它时,我得到了这个错误:

连接未关闭。连接的当前状态是正在连接。说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.InvalidOperationException:连接未关闭。连接的当前状态是正在连接。

源错误:

第 49 行:foreach (var iAsyncResult in resultList) 第 50 行:{ 第 51 行:del.EndInvoke(iAsyncResult); 第 52 行:iAsyncResult.AsyncWaitHandle.Close(); 第 53 行:}

有趣的是,b/c Emre(该库的作者)对他的原始帖子进行了编辑,讨论了他如何添加这些代码行以增加安全性。我用对了吗?还是他的 v1 更安全?