Reactive Extension(Rx)教程是最新的

时间:2012-04-04 12:45:15

标签: c# .net system.reactive

我对Reactive Extensions很感兴趣,但我找不到最新的教程。我从Curing the asynchronous blues with the Reactive Extensions for .NET开始,但它已经过时了。我可以找出一些变化,但我无法让很多例子工作。

我在网上发现了很多文章,主要来自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"));

不再工作,将FromEvent替换为FromEventPattern是不够的。

有人能指出我最新的资源吗?

4 个答案:

答案 0 :(得分:48)

在学习Rx时,首先要了解IObservable背后的理念以及它基于推送的性质与IEnumerable的比较。我建议使用以下内容作为一个很好的解释:A[nother] Simpler Tutorial for Reactive Extensions

李·坎贝尔(Lee Campbell)有很好的系列讲解api以及何时使用它们。 他还尝试使用最新版本保持最新版本:Reactive Extensions for .NET an Introduction 该系列现已作为一本书出现在Introduction to Rx

顺便说一句,我还写了一篇关于用rx解决现实生活问题的博文:Using Reactive Extensions for Streaming Data from Database

希望这有帮助。

答案 1 :(得分:19)

我找到了一个名为Reactive Extensions (Rx) Koans的“边做边学”项目 它最后更新于2012年3月,所以它是最新的。

  

'Koan'的定义   Kōans是一个禅词,意思是一个人的启蒙或觉醒,通常是通过拼图或谜语。最常见的是“单手拍手的声音是什么?”

它由一系列几乎完整的单元测试组成,您必须以这样的方式完成它们通过。你这样做是为了“填补空白”。

它非常简洁,很容易完成,并提供有价值的见解。

哦,是的,它来自Rx团队的 Bart De Smet

这是一个典型的单元测试:

[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());
}

答案 2 :(得分:14)

到目前为止,帮助我绕过Rx的最佳资源是: http://www.introtorx.com/

我认为这种情况发生在很多人身上,但在搜索关键字“Rx教程”时找不到该网站。认为有人需要在网站上添加一些标签!

答案 3 :(得分:4)

逐行阅读此在线书籍(每行)并练习。这很好,我在开始使用Rx时做了。

http://www.introtorx.com/