我有一个热门的 Observable (Rx.Net),当它检测到与 PC 的设备连接时,它会滴答作响。 我有一个处理这些设备显示的视图。 不幸的是,在连接设备之前可能不会显示视图,因此会丢失通知。 我想知道是否有办法在有人订阅之前缓存设备连接。 我想过使用ReplaySubject ,但是它会不断 ...
我有一个热门的 Observable (Rx.Net),当它检测到与 PC 的设备连接时,它会滴答作响。 我有一个处理这些设备显示的视图。 不幸的是,在连接设备之前可能不会显示视图,因此会丢失通知。 我想知道是否有办法在有人订阅之前缓存设备连接。 我想过使用ReplaySubject ,但是它会不断 ...
我正在学习 Rx,我想知道如何将重试打印到控制台,例如“Retry #1”、“Retry #2”等。我看到有人使用我找不到的.Dump扩展方法。using System.Reactive.Concurrency; using System.Reactive.Linq; using System.Re ...
这是一个请求-响应 model(类似于 HTTP),但通过套接字/websockets。 通过比较请求 ID,我们知道哪个响应对应于哪个请求。 工作流程如下: 订阅可观察对象Error 、 ContractDetails ( _itemObservable ) 和ContractDetailsEnd ...
我有一个 API 在回调方法中接收消息作为结构 . 该方法通过引用接收那些结构对象以避免复制。 我正在考虑包装 API 并将消息公开为可观察的。 鉴于我无法观察结构引用,并且通过复制该解决方案来传递/返回结构 似乎不是最理想的,最好一直使用回调方法。 有没有更好的方法来处理 Rx 扩展库中的结构? ...
我正在尝试学习如何在我的 C# 应用程序中使用“System.Reactive”。 现在我正在玩合并操作,但也许我误解了一些东西。 我有以下带有两个事件的测试类(不同的事件参数) 现在我想观察这两个事件,当其中一个事件触发时我想调用一个专用方法。 因此我尝试了以下方法: 但是由于不同的事件参数,合 ...
比如说,我想要一个 stream 在上一个作业完成后 1 秒发出一个新作业。 作业应在创建后立即发出,以便订阅者可以跟踪其进度。 这是如何实现的?var currentJob = Observable.Interval(TimeSpan.FromSeconds(1)) .Select(i ...
我在订阅源缓存时遇到一个问题。 让我描述一下这个问题。 可以说我有测试 Class 我想查看测试 class 的属性发生的变化,订阅者会根据变化做出反应。 但是对于当前的实现,只有当源被更新为新数据时才会收到通知,如果源缓存中元素的任何属性正在更新则不会。 ...
所以我在我的装配项目中导入了一个库。 现在我需要从 nuget 启动器添加一些包。 当我安装它们时,我的代码变得很好,找到了命名空间,并且 package 出现在我的参考中。 但是在 Unity 中仍然报错说找不到命名空间。 如果我单击错误,VS 项目将重新加载并删除我添加的 package - ...
我有几个需要按计划运行的异步任务/作业,似乎我可以使用Observable s 很好地做到这一点。 当作业获取数据时,可能会发生异常(例如 404),并且当处理结果数据时,也可能会发生错误。 我已经看到 Enigmativity 的这个答案,它似乎是包装IObservable<>的完美 ...
我想根据条件按顺序缓冲项目。 问题是这种情况取决于处理的项目。 让我举个例子: 鉴于这种: 如果n是奇数,停止缓冲如果n是偶数,开始缓冲这样,结果序列应该是: 我试过这种变化但没有成功: ...
如果发生了不同的事件B ,我需要取消去抖动的 Rx 事件A A人为的例子:如果同时单击鼠标按钮,则忽略去抖动的键盘击键。 下面我通过定时器延迟模拟事件A和B A使用 Rx.NET Throttle运算符去抖动:var subjA = new Subject<int>(); var ...
当执行一些 Async function 时,我们必须使用Observable.Select() 。 例如, 在Subscribe()中使用异步 function 会出现问题。 订阅逻辑是否可以始终在Select()中运行? (使用.Select(...my logic...).Subscrib ...
我在 F# 中为 FRP 执行了此操作,其工作原理与预期一样: 虽然我不太喜欢event.publish系统,但至少event.Trigger有点直截了当理解。 现在,我试着习惯https://reactivex.io/ 自测试版发布以来,我已经认识 Rx 很长时间了,而且我也知道这个 API 仅 ...
我在 .NET 6 WPF 桌面应用程序中使用 TwincatAds.Reactive 6.0.190。 我也在使用 MVVM 模式。 我的目标是创建一个 Class 来观察 PLC 变量的变化,将这些变量收集到字典中,然后在 ViewModel 中使用这些值。 这是我附加通知的方法和处理通知的操作 ...
在下面的代码中, What's a good way to run period tasks using Rx, with a single concurrent execution限制? , 我正在尝试添加cancellation并在五秒钟后测试停止程序。 我希望代码将当前时间打印 N 秒,然 ...
目前我想在服务器上制作一个图片和图像列表,当我点击它时,它会将图像下载到 memory 设备。 如果图像被下载,它将不会再次下载,并且将下载不存在的图像。 那我想请教大家一个解决方案,我应该如何处理下载的干净和有利于性能。 或者你有我可以参考的例子吗? 谢谢! ...
我有一个简单的事件总线来触发 Rx 事件:public class EventBus { private readonly LayerStack _layerStack; private readonly ConcurrentDictionary<string, Subject ...
我正在使用 Rx.NET 库连接到交易数据,我想做的是连续缓冲最后 100 秒的数据并每 2 秒分析一次。 我正在使用以下 Buffer 方法重载: 现在的问题是它作为 100 秒缓冲区工作 + 它等待 2 秒。 有没有办法以一定的间隔立即拍摄最后 100 秒的“快照”? ...
请参阅下面的 C# 代码,用于将两个输入压缩在一起的组合器 此代码接受两个布尔输入流,然后在 zip 中的两个插槽都被填满时触发一个元组。 相比之下,CombineLatest 第一次等待元组填充(然后触发),然后在其中一个插槽更新时触发,即使另一个仍然是 static。 我想要一种在某种意义上与这 ...
我有一个可观察的( mainSequence )。 如果满足条件,它应该调用一次异步方法,直到条件改变。 方法返回值将指示成功。 失败时,我有一个订阅,它将通知用户。 其他 observable 可能订阅mainSequence并具有类似的错误处理模式。 但是mainSequence的连续观察 ...