C# 最新的反应式扩展 (Rx) 教程
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/10011369/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Reactive Extension (Rx) tutorial that is up to date
提问by Igor Kulman
I am quite interested in Reactive Extensions but I cannot find an up to date tutorial. I started with Curing the asynchronous blues with the Reactive Extensions for .NETbut it is out of date. I can figure out some changes but I could not get many examples working.
我对 Reactive Extensions 很感兴趣,但我找不到最新的教程。我开始使用Reactive Extensions for .NET 解决异步忧郁症,但它已经过时了。我可以找出一些变化,但我无法得到很多例子。
I found many articles on the web, mainly from 2009,2010 but they are also incompatible with the current release. I am especially interested in using Rx with Windows Phone and WebClient:
我在网上找了很多文章,主要是2009、2010年的,但也和当前版本不兼容。我对在 Windows Phone 和 WebClient 中使用 Rx 尤其感兴趣:
WebClient wc = new WebClient();
var o = Observable.FromEvent<DownloadStringCompletedEventArgs>(wc, "DownloadStringCompleted").Select(newString => newString.EventArgs.Result);
// Subscribe to the observable, and set the label text
o.Subscribe(s => myLabel.Text = s);
// Start the download
wc.DownloadStringAsync(new Uri("http://www.data.com/service"));
Do not work anymore and replacing FromEventwith FromEventPatternis not enough.
不再工作,替换FromEvent为FromEventPattern是不够的。
Can somebody point me to an up to date resource?
有人可以指出我的最新资源吗?
采纳答案by Giorgi
When learning Rx the first thing is to understand the philosophy behind IObservable and how it's push based nature compares with IEnumerable. I suggest the following one for a good explanation: A[nother] Simpler Tutorial for Reactive Extensions
在学习 Rx 时,第一件事是了解 IObservable 背后的哲学,以及它与 IEnumerable 相比如何基于推送的特性。我建议使用以下一个很好的解释:A[nother] Simpler Tutorial for Reactive Extensions
Lee Campbell has nice series explaining the api and when to use them. He also tries to keep it up to date with latest releases: Reactive Extensions for .NET an Introduction
The series is now available as a book at Introduction to Rx
Lee Campbell 有很好的系列解释 api 以及何时使用它们。他还尝试使其与最新版本保持同步:Reactive Extensions for .NET an Introduction
该系列现在可以在Introduction to Rx 上以一本书的形式提供
By the way, I have also written a blog post about solving real life problem with rx: Using Reactive Extensions for Streaming Data from Database
顺便说一句,我还写了一篇关于用 rx 解决现实生活中的问题的博客文章:Using Reactive Extensions for Streaming Data from Database
Hope this helps.
希望这可以帮助。
回答by Cristian Diaconescu
I found a "learn by doing" project called Reactive Extensions (Rx) Koans.
It was last updated in March 2012, so it's fairly up-to-date.
我找到了一个名为Reactive Extensions (Rx) Koans的“边做边学”项目。
它最后一次更新是在 2012 年 3 月,所以它是最新的。
Definition of ‘Koan'? Kōans is a zen word meaning the enlightenment or awakening of a person, usually through a puzzle or riddle. The most common one is “What is the sound of one hand clapping?”
'Koan' 的定义?Kōans 是一个禅宗词,意思是一个人的启蒙或觉醒,通常是通过拼图或谜语。最常见的是“一只手拍手的声音是什么?”
It is made of a series of almost-complete unit tests that you must finish in such a way that they pass. You do this by 'filling in the blanks'.
它由一系列几乎完整的单元测试组成,您必须以它们通过的方式完成这些测试。您可以通过“填空”来做到这一点。
It's pretty neat, quite easy to complete, and gives valuable insight.
它非常整洁,很容易完成,并提供了宝贵的见解。
Oh yeah, and it's made by Bart De Smetfrom the Rx team.
哦,是的,它是由Rx 团队的Bart De Smet制作的。
Here's a typical unit test:
这是一个典型的单元测试:
[TestMethod]
public void DoingInTheMiddle()
{
var status = new List<String>();
var daysTillTest = Range.Create(4, 1).ToObservable();
daysTillTest.Do(d => status.Add(d + "=" + (d == 1 ? "Study Like Mad" : ___)))
.Subscribe();
Assert.AreEqual("[4=Party, 3=Party, 2=Party, 1=Study Like Mad]", status.AsString());
}
回答by letstango
By far the best resource that helped me wrap my head around Rx is: http://www.introtorx.com/
到目前为止,帮助我了解 Rx 的最佳资源是:http: //www.introtorx.com/
I'm thinking this happens to a lot of people, but you can't find that site when searching on the keywords "Rx tutorial". Think somebody needs to add some tags to the site!
我认为这种情况发生在很多人身上,但是在搜索关键字“Rx 教程”时找不到该站点。认为有人需要向网站添加一些标签!
回答by Gerald G.
Read this online book line by line (every line) and practice. This is good, I did when I started with Rx.
逐行(每一行)阅读这本在线书籍并进行练习。这很好,当我开始使用 Rx 时我做到了。

