问题标签 [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.
c# - 如何将 Observable.FromEvent 与静态事件一起使用?
我正在尝试使用 Reactive Extensions 编写代码来处理异步调用,其中启动方法和完成的事件都是静态的。我无法使用
因为 LanguageManager 是一个静态类而不是一个实例,所以我尝试了
但这会产生语法错误“无法将 lambda 表达式转换为类型‘对象’,因为它不是委托类型”。该事件因此被宣布
所以我认为它是一个委托类型,也许它是静态的事实会产生误导性的错误描述。
他们有什么方法可以做到这一点,还是我只需要坚持这样的非反应性代码?
system.reactive - System.IObserver 的 .NET 3.5 替身
我想将 .NET 4.0 接口 IObserver 用于需要支持以前版本的框架的库。我已经有了条件编译,可以让我为每个框架版本进行构建。
我不想使用 Rx Extensions 的版本,IObserver<T>
因为这会给原本独立的程序集添加不必要的依赖项。
我正在考虑将这段代码添加到我的库中,我对你们所有人的问题是:
1)我知道这是个坏主意,但我想弄清楚,“为什么?”
我想使用标准接口,以便 .NET 4.0 用户能够以我还没有想到的很酷的方式进行集成。所以我不想只是重复这个概念并松散与其他即将出现的IObservable<T>
用法的集成。
我看到的危险是,如果我的库的 .NET 3.5 版本在 .NET 4.0 中使用,可能会出现类型冲突。不过,理想情况下,使用 v4.0 的人会使用 4.0 版本的库。
使用这种方法还有什么我应该注意的吗?
2)或者,我已经考虑在我的代码中这样做(这是我倾向于的方向)并且想知道人们对为什么这是一个坏主意的想法:
后来我想在哪里使用它:
有什么想法吗?
c# - 在 Rx.Net 上迫切需要帮助
大家好,我对 Rx 非常非常非常陌生,并试图组合一个简单的测试应用程序。它基本上使用 Rx 订阅窗口单击事件,并将文本框上的文本设置为“已单击”。这是一个 wpf 应用程序。这是xml:
这是背后的代码:
但由于某种原因,代码没有运行。我得到消息:
对匹配指定绑定约束的“Reactive.MainWindow”类型的构造函数的调用引发了异常。行号'3'和行位置'9
内部异常消息:
事件委托的形式必须为 void Handler(object, T) 其中 T : EventArgs。
请帮忙!!!
.net - 为什么 Windows\Assembly 中可能缺少 System.Threading.dll?
我在运行 XP Professional 的远程计算机上安装了各种版本的 .NET Framework(版本 1.1 到 4.0)。我也安装了 Reactive Extension 以获得良好的效果。
我还有一个可以在我的机器上运行的应用程序,因为它引用了此处的 System.Threading:C:\Program Files\Microsoft Reactive Extensions\redist\desktopV2\System.Threading.dll
我在 GAC 中也有两个版本的 DLL。
两个问题:
i) 为什么当我从列表中选择而不是浏览到文件时,Visual Studio 决定这是要引用的版本(实例)?
ii) 为什么远程机器上不存在 System.Threading?(我认为这是框架的核心部分)
谢谢
unity-container - 统一使用 IObservable
我想使用 iobservable 模式来公开事件流。问题是我使用统一来创建观察者和事件生成器。我宁愿不必在应用程序启动时更新这两个,这样我就可以开始监听事件。有人对此有什么建议吗?
mvvm - 如何在 MVVM ViewModel 中获取 Rx Observable 事件流
我只是在阅读 Rx HOL NET。找到后(示例使用 Windows 窗体):
我想知道如何在某些 WPF MVVM 设置中实例化并将移动的引用传递给 ViewModel?据我了解,尝试在 ViewModel 中过滤此数据流确实很有意义。
或者,如何为 TextBox 的键盘输入做类似的事情?例如,在这种情况下,您不会将某些文本屏蔽行为附加到 XAML 中的控件,而是让 VM 中的 Observer 过滤和验证键盘输入。
我完全偏离轨道了吗?
c# - Rx - 取消订阅事件
我有一个 INotifyPropertyChanged 对象 Foo。我使用 Rx 的 FromEvent 方法将 Foo 转换为可观察的事件流:
现在我想听一个特定的属性改变了,如果.Progress == 100,取消订阅:
当 Progress == 100 时如何取消订阅?如果我在 .Where 子句之后添加一个 .Take(1) 调用,那会自动取消订阅吗?
.net - 使用响应式扩展来保留一系列事件中的最新事件,直到收到最新事件后 x 秒
我试图了解如何使用响应式扩展来实现以下场景。我一直在研究的其他解决方案涉及管理一系列计时器……如果可能的话,我希望避免这种情况。
场景
发生“ActionRequests”流。ActionRequest 的流入来自不同的对象源。一旦请求停止从特定来源传入 x 秒,我只对挑选最新的 ActionRequest 感兴趣
所以打破它。
对此的任何想法将不胜感激。
c# - 可以使用响应式框架重构此代码吗?
将以下代码复制粘贴到新的 C# 控制台应用程序中。
2 线程 (A,B)
一个线程可以一次提供一个实例并调用Set方法B线程想要接收一系列实例(由线程A提供)
所以从字面上将 Add(item), Add(item), .. 转换为不同线程之间的 IEnumerable
当然也欢迎其他解决方案!
.net - 反应式扩展:节流/样本与不同的时间间隔
我有一个IObservable
以随机间隔产生值的,我想限制这个序列。我发现的一件事是Throttle
运营商对“节流”的定义与我的不同。
Throttle
仅在指定的时间间隔过后才产生值(它产生最后看到的值)。我认为节流意味着在指定的时间间隔内产生值(当然,除非有沉默)。
说,我希望Observable.Interval(100).Select((_,i) => i).Throttle(200)
产生(以任何性能/时序问题为模)偶数,因为我将其限制为“半速”。然而,这个序列根本没有产生任何价值,因为从来没有一段长度为 200 的静默期。
所以,我发现这Sample
实际上是我想要的“节流”行为。Observable.Interval(100).Select((_,i) => i).Sample(200)
产生(再次以任何性能/时序问题为模)偶数序列。
但是,我还有另一个问题:间隔会有所不同,具体取决于最后一个“采样”值。我想要的是编写一个如下所示的运算符:
该intervalSelector
参数产生下一个样本的间隔,第一个样本......要么取自第一个值,要么取自附加参数,我不在乎。
我试着写这个,但我最终得到了一个大而复杂的结构,它不能很好地工作。我的问题是,我可以使用现有的运营商(也就是单线)来构建它吗?