在c#中使用Rx Reactive扩展的linqpad错误

Gul*_*llu 3 c# linq linqpad system.reactive

我究竟做错了什么 ?我刚下载了最新的Rx sdk,已安装.使用vs 2010,.net 4具有所有最新的sp/updates等.下载/安装了linqpad,添加了对被动dll的引用,如附带的屏幕截图所示.添加了一行,如linqpad演示中所示,但在运行时出错.请指教.右键单击图像并查看图像以获得清晰视图.

谢谢

在此输入图像描述

Joe*_*ari 8

Rx主页上的下载实际上并不是最新的Rx SDK.最新版本发布在Reactive Extensions Team Blog网站上,目前是2011 年 5 月发布的2010年5月圣诞节版本.

在您正在使用的版本中,Observable类位于System.Reactive.Linq命名空间(而不是System.Linq命名空间)中.再次按F4并进入System.Reactive.Linq"其他命名空间导入".(或者,如果您有自动完成功能,则会出现智能标记并为您完成工作).

这将使您在LINQPad中使用Rx启动并运行.在observable上调用.Dump()是非阻塞的,因此您可以一次转储多个observable.

例如:

Observable.Interval(TimeSpan.FromSeconds(1)).Take(5).Dump("1 second");
Observable.Interval(TimeSpan.FromSeconds(.5)).Take(5).Dump(".5 second");
Run Code Online (Sandbox Code Playgroud)

结果:

.5 second ? 0
1 second ? 0
.5 second ? 1
.5 second ? 2
1 second ? 1
.5 second ? 3
.5 second ? 4
1 second ? 2
1 second ? 3
1 second ? 4
Run Code Online (Sandbox Code Playgroud)

当所有可观察量都已结束(或按下取消)时,查询将结束.

运行另一个反应性查询,按按Ctrl + Shift + N.这将创建一个具有相同属性(引用,命名空间导入等)的新查询.另一个技巧是,如果您有自动完成功能,则在添加程序集/命名空间导入后单击"另存为代码段".然后,每当您键入快捷方式(例如,'rx')并按Tab键时,将自动添加引用和名称空间.