标签: system.reactive

部署利用.Net Reactive Extensions

我们的应用程序使用Reactive Extensions(Rx).这些通常是通过Microsoft的可下载软件包安装的.但是,当我们发送我们的应用程序时,我们提供了dll的副本(即System.CoreEx.dll和System.Reactive.dll).GAC v1.0.2787.0和v1.0.2856.0中似乎有两个版本.我们引用一个特定的版本并发布适当的版本.

但是,当应用程序启动时,它会抛出一个错误对话框,指出必须在GAC中安装Rx Dll.它还向Dll请求其他版本的Rx,例如,如果您引用1.0.2787,它将请求1.0.2856.0,反之亦然.

有没有人解决这个问题?

system.reactive

3
推荐指数
1
解决办法
349
查看次数

Threading.Tasks在.NET 3.5中的Rx扩展模拟?

是否可以使用Reactive Extensions(Rx)在.NET 3.5中创建执行并行化的应用程序,还是以某种方式限制?我从http://www.microsoft.com/download/en/confirmation.aspx?id=26649下载了Rx ,在创建了一个带引用的反应式程序集的简单项目之后,我找不到与.NET 4.0中的任务相对应的任何类.我正在尝试为"任务"找到课程,但唉,我找不到任何课程.难道我做错了什么?

c# .net-3.5 system.reactive

3
推荐指数
1
解决办法
4702
查看次数

从observablecollection创建observable <bool>

我有ObservableCollection <T>,我需要创建observable <bool>,如果collection包含任何元素,则返回true

我试着这样做

var collectionHasElementsObservable =
            Observable.FromEventPattern<NotifyCollectionChangedEventHandler,NotifyCollectionChangedEventArgs>(
                ev => ((ObservableCollection<MyType>)_items).CollectionChanged += ev,
                ev => ((ObservableCollection<MyType>)_items).CollectionChanged -= ev);
Run Code Online (Sandbox Code Playgroud)

但我不知道如何将其转换为IObservable <bool>

如何从中创建可观察的<bool>?

.net c# reactive-programming system.reactive reactiveui

3
推荐指数
2
解决办法
1463
查看次数

Rx框架真的是"反应性的"吗?

我正在通过网络浏览Rx框架材料,我找到了很多.

现在每当我谷歌周围的时候,我也发现了"反应式编程"维基百科的链接.

由于反应式编程是关于a:= b + c,(无论何时b或c发生变化,都会发生变化).和Rx是关于订阅源发布的可观察序列.

有人可以解释一下反应式编程和Rx之间的链接究竟是什么?

reactive-programming system.reactive

3
推荐指数
1
解决办法
773
查看次数

RXJS在html5画布上绘制线条

我正在努力实现我在这里使用Reactive Extensions for Javascript(RX-JS)发布的相同效果.我对如何做到有点困惑.这是页面:

      <!DOCTYPE html>
      <html>
      <head>
        <title>drag and drop</title>
      </head>
      <style type="text/css">

      canvas {
        border:1px solid steelblue;
        background-color: whitesmoke;
      }

      </style>
      <body>
        <canvas id="canvas" width=300 height=300></canvas>
        <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
        <script type="text/javascript">
        $(function() {
            var canvas = document.getElementById("canvas");
            var ctx = canvas.getContext("2d");

            var canvasOffset = $("#canvas").offset();
            var offsetX = canvasOffset.left;
            var offsetY = canvasOffset.top;

            var drawing = false;
            var mouseX = 0;
            var mouseY = 0;


            function handleMouseDown(e) {
                mouseX = parseInt(e.clientX - offsetX);
                mouseY = parseInt(e.clientY - offsetY); …
Run Code Online (Sandbox Code Playgroud)

javascript html5 canvas system.reactive rxjs

3
推荐指数
1
解决办法
992
查看次数

订购反应性扩展事件

我在多个线程中接收UDP上的消息.每次接待后我都会加注MessageReceived.OnNext(message).

因为我使用多个线程,所以无序引发的消息是一个问题.

如何通过消息计数器命令加注消息?(假设有一个message.counter属性)

必须记住一条消息可能会在通信中丢失(假设我们在X消息之后有一个计数器孔,那个洞没有填满我提出下一条消息)

必须尽快提出消息(如果收到下一个计数器)

udp reactive-programming system.reactive

3
推荐指数
1
解决办法
206
查看次数

Rx GroupByUntil与限制计时器重生

Rx GroupByUntil文档声明

当出现与回收组具有相同键值的新元素时,将使用新的生命周期请求重新生成该组.

我对这段代码有疑问.

myObservable.GroupByUntil(
                    selectKey,
                    g => g.Throttle( selectTimer(g.Key),
                    throttlingScheduler))
Run Code Online (Sandbox Code Playgroud)

selectTimer当组使用相同组密钥的新元素"重生"时,不会调用我的限制计时器.相反,元素灌浆继续使用相同的节流计时器.

当有相同键值的元素出现时,有没有办法刷新节流定时器?

c# system.reactive

3
推荐指数
1
解决办法
690
查看次数

Rx Throttle(...).ObserveOn(调度程序)和Throttle(...,调度程序)之间的区别

我有以下代码:

IDisposable subscription = myObservable.Throttle(TimeSpan.FromMilliseconds(50), RxApp.MainThreadScheduler)
                                       .Subscribe(_ => UpdateUi());
Run Code Online (Sandbox Code Playgroud)

正如所料,UpdateUi()将始终在主线程上执行.当我将代码更改为

IDisposable subscription = myObservable.Throttle(TimeSpan.FromMilliseconds(50))
                                       .ObserveOn(RxApp.MainThreadScheduler)
                                       .Subscribe(_ => UpdateUi());
Run Code Online (Sandbox Code Playgroud)

UpdateUI() 将在后台线程中执行.

为什么不Throttle(...).ObserveOn(scheduler)等同Throttle(..., scheduler)

c# system.reactive reactiveui

3
推荐指数
2
解决办法
763
查看次数

Reactive Extensions:是否可以订阅Buffer操作结果的Sum?

我试图获得关于Aggregate函数(即Sum)结果的通知,它对无限序列的部分序列进行操作(最顶层,数据源序列永远不会完成).问题可以在这里看到:

var seq = Observable.Interval(TimeSpan.FromMilliseconds(20)).Buffer(10);
seq.Sum(l => l.Sum())
            .Subscribe(n =>
                s_log.DebugFormat("Got {0}", n));
Run Code Online (Sandbox Code Playgroud)

Lambda l.Sum()按预期调用(计算部分和),但从不打印"Got ..."行,因为永远不会调用subscriber.我怀疑它与某种原始序列的"永无止境"特征有关.有限序列:

 Observable.Range(1,100).Buffer(10);
Run Code Online (Sandbox Code Playgroud)

按预期工作.所以问题很简单:如何将无限序列的部分片段"标记"为"完整",因此聚合函数将分别对它们起作用(并将其结果推送给订阅者)?

c# system.reactive

3
推荐指数
1
解决办法
317
查看次数

什么是IObservable.Subscribe(IObserver <T>观察者)重载?

当我写.Subscribe表达式时,我经常发现Resharper为我选择了以下重载,位于mscorlib,Version = 4.0.0.0:

namespace System
{
  public interface IObservable<out T>
  {
    IDisposable Subscribe(IObserver<T> observer);
  }
}
Run Code Online (Sandbox Code Playgroud)

这看起来与大多数重载非常不同,这些重载Action都来自mscorlib,而不是System.Reactive.*我期望大多数Reactive的东西.

这次超载有什么作用?该如何使用?怎么IObserver<T>涉及Action?为什么mscorlib会出现这种单一过载?

.net system.reactive

3
推荐指数
1
解决办法
1071
查看次数