问题标签 [rx.net]

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 投票
1 回答
492 浏览

c# - 相当于 Rx.Net 中的 .onBackpressureBuffer()?

有一个异步发出项目的源,在我的例子中,在几秒钟内大约有 10 个项目。

  • 我想处理所有这些。
  • 按出场顺序
  • 一次一个
  • 处理每个可能需要很长时间(如 1-5 秒)
  • 处理中可能有新项目

目前我正在将 Java 应用程序移植到 C#。在 RxJava 世界里有onBackpressureBuffer方法,而在 Rx.Net 里有很多不同的方法,无法找出等价物。

我想我可以使用Buffer()零延迟并使用生成的可枚举,但似乎很hacky。

编辑:请在投反对票之前阅读评论

0 投票
1 回答
120 浏览

performance - 同步环境中的反应式编程:性能与依赖管理

我了解反应式编程在异步环境(Web 请求,或繁重的 IO/多线程/后台任务)中大放异彩。但是,在同步世界中,我发现反应式编程仍然给程序员释放依赖管理负担带来了很大的好处。我我正在使用 C# 编写一个类似于电子表格的桌面应用程序:大量输入,对这些输入和输出进行计算。我正在使用 RX.net 并享受它给我带来的好处免费依赖管理:当输入更改时,我不需要知道哪些计算需要redo,哪些ui需要更新。但是,由于涉及的同步/顺序计算更多,使用observable对性能的影响更大。考虑以下两种编码方式:

假设 my_to_upper() 是一个缓慢的过程:

对于 async_world(),与 sync_world() 相比,my_to_upper() 执行了两次。当数据到达时(在每个 onNext 调用上)A_ob 执行计算并“缓存” my_to_upper() 的结果并将其传递给 AA_ob 和 AAA_ob

所以我的问题是:这是我们必须做出的权衡:让计算机以低效的性能为我们自动管理依赖关系,或者手动管理依赖关系以获得更好的性能。

0 投票
2 回答
181 浏览

c# - 反应测试以观察不同和重复的值

我写了测试来观察Distinc操作

测试通过了,但是我不确定如何同时观察重复项。我尝试了一些组合,PublishCombineLatest我觉得它们不值得一提。我的duplicate流应该只有 2 个项目OnNext(200,"a"), OnNext(221,"a")

0 投票
1 回答
53 浏览

c# - 如何将迭代更改为反应式 (Rx)

我想将以下代码更改为基于 Observable:

但是当我尝试改变它时,我最终遇到了一些设计问题:

我觉得我走错了路……

0 投票
2 回答
168 浏览

c# - 使用 RX 压缩重复的流

我有两个热门的 observables 我不想错过任何通知

第一个可观察的产生数字

1-2-3-4

和第二弦

抗体

我正在寻找一种方法来压缩它们以产生下一个输出

a-1 b-2 a-3 b-4 a-5

所以我想要的是无限期地重复第二个流,直到第一个流被取消订阅。我尝试了类似下一个测试的方法,它产生了所需的输出。但是我Repeat永远不会,因为我不知道如何停下来测试结果。此外,我使用了ReplaySubject手动完成的,这意味着我无法收到任何新通知。

0 投票
0 回答
253 浏览

java - Rx Java 与 Rx C#

我开始通过这本电子书学习 C# 的Rx ,但由于我也经常使用 Java,所以我想知道 C# 的 Rx 和 Java 的 Rx 可能有何不同。这样我可以学习一个,然后只关注它们之间的差异,最终学习两者。

我对 C# 的 Rx 和 Java 的 Rx 有什么期望?它们之间有何不同?它们的局限性是什么?哪一个能做到另一个不能?

0 投票
3 回答
169 浏览

system.reactive - 当第二个 observable 发出时获取第一个 observable 的最新值

我的视图模型中有两个可观察对象,一个是由 UI 更改的值的可观察对象,另一个表示命令失败时引发的异常。

我想创建一个 observable,它在引发异常时从第一个 Observable 发出值。简而言之,我想得到以下结果

大理石图

0 投票
0 回答
189 浏览

c# - 使用 RefCount 的正确方法是什么

结果:

此处支持“创建”只打印一次。

但是第一个订阅似乎在第二个订阅开始之前就被处理掉了,引用计数回到零并且重播断开连接。

那么在我们不知道我们的源将在多长时间内完成并且我们想要多次订阅它的情况下使用 RefCount 的正确方法是什么?

0 投票
1 回答
44 浏览

timestamp - ReactiveX 视频游戏渲染循环计时

我目前正在研究 .net 中的 reactx 以用于模拟重度视频游戏。我的第一个目标是创建基本的事件/渲染循环。我有以下代码几乎完全符合我的要求。

这会在主线程上尽快发出帧事件。完美的!但是,我注意到同一帧的两个订阅者之间的时间戳可能略有不同。例如,

同一帧的时间戳相差一毫秒。为此,这两个游戏对象/订阅者都需要在每帧获得完全相同的时间戳,否则模拟可能无法正常运行。

我猜 Timestamp 运营商正在为每个订阅者对流中发出的每个事件进行一次评估。有没有办法让它为每个事件发出的所有订阅者评估一次?谢谢!

0 投票
1 回答
108 浏览

reactive-programming - 反应式扩展 - 如何进行可变速率轮询?

我想知道如何以设定的时间间隔轮询/调用方法。我也希望能够改变这个定期间隔。所以像这样。

在大理石图中

需要注意的是,一个新的值rate应该强制Poll立即发出并取消任何以前应该发出的值。

我试图写一个Poll Operator. 但是,当我尝试通过一个大的TimeSpan.