在 C# 中使用 Rx Reactive 扩展时出现 linqpad 错误

发布于 2024-11-15 01:55:51 字数 242 浏览 5 评论 0原文

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

谢谢

在此处输入图像描述

What am I doing wrong ? I just downloaded the latest Rx sdk, installed. Using vs 2010, .net 4 have all latest sp/updates etc. Downloaded/installed linqpad, Added reference to the reactive dll as shown in the attached screenshot. Added the one line as shown in the linqpad demo but get an error when I run. Please advise. Right click on image and view image for clear view.

thanks

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

十年九夏 2024-11-22 01:55:51

Rx主页上下载的实际上并不是最新的Rx SDK。最新版本位于 Reactive Extensions 团队博客网站,目前是 2010 年圣诞节 2011 年 5 月 2011 年 6 月发布

在您使用的版本中,Observable 类位于 System.Reactive.Linq 命名空间(而不是 System.Linq 命名空间)中。再次按 F4 并在“Additional Namespace Imports”中输入 System.Reactive.Linq。 (或者,如果您有自动完成功能,则会出现一个智能标记并为您完成这项工作)。

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

例如:

Observable.Interval(TimeSpan.FromSeconds(1)).Take(5).Dump("1 second");
Observable.Interval(TimeSpan.FromSeconds(.5)).Take(5).Dump(".5 second");

结果:

.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

当所有可观察值都结束(或者按“取消”)时,查询将完成。

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

The download on the Rx home page is not actually the latest Rx SDK. The latest release is on the Reactive Extensions Team Blog site and is currently the Christmas 2010 May 2011 June 2011 release.

In the release you're using, the Observable class is in the System.Reactive.Linq namespace (rather than the System.Linq namespace). Press F4 again and enter System.Reactive.Linq into "Additional Namespace Imports". (Or if you have autocompletion, a smart tag will appear and do the job for you).

This will get you up and running with Rx in LINQPad. Calling .Dump() on an observable is non-blocking, so you can Dump multiple observables at once.

For example:

Observable.Interval(TimeSpan.FromSeconds(1)).Take(5).Dump("1 second");
Observable.Interval(TimeSpan.FromSeconds(.5)).Take(5).Dump(".5 second");

The result:

.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

The query will finish when all the observables have ended (or you press Cancel).

To run another reactive query, press Ctrl+Shift+N. This creates a new query with the same properties (references, namespace imports, etc). Another trick, if you have autocompletion, is to click 'Save as Snippet' after adding the assembly / namespace import. Then whenever you type the shortcut (e.g., 'rx') and press tab, the references and namespaces will be added automatically.

北笙凉宸 2024-11-22 01:55:51

切换到对话框中的另一个选项卡,并在命名空间列表中添加 System.ReactiveSystem.Reactive.Linq

Switch to the other tab in the dialog and add System.Reactive and System.Reactive.Linq in the namespace list

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文