2010-03-31 66 views
73

我瞭解Rx的基礎知識。我在哪裏掙扎的是你如何在學術範例之外使用它?什麼是一些常見的,簡單的現實世界的場景,其中Rx比我們今天在.NET中有更好的解決方案?反應性擴展的好例子使用

+2

我用Rx編寫了一個WPF Bing搜索演示:http://blog.andrei.rinea。ro/2013/06/01/bing-on-reactive-extensions-story-code-and-slides/ – 2013-06-01 20:48:09

+1

我在我的博客上的一系列文章中回答了這個問題:http://rehansaeed.co.uk/reactive-extensions-part1-replaces-events/ – 2014-09-24 12:52:19

+0

請查看https://github.com/AdaptiveConsulting/ReactiveTraderCloud。我認爲這是一個很好的例子,因爲他們爲他們的樣本使用了很多Reactive Extension。乾杯! – thangchung 2016-12-29 12:01:10

回答

36

對於一束良好實例,參見the 101 Rx Samples wiki

+11

感謝您的鏈接。那裏有一些非常好的樣品。還是不太明白那首歌 - 「哦,這是這個解決的典型問題」樣本。然後,再次,可能只是我在緩慢的攝取。 – 2010-03-31 15:27:23

+7

哼......儘管它的得分很高,但這個答案仍然是「僅鏈接」。你可能會充實一點嗎? – Jubobs 2015-01-05 14:41:14

4
  • 設備觀測值
  • 數據現在正在添加在通過消息總線

在兩種情況下,接收所述數據的標準方法是通過事件,但如果我想要查詢語法或組合,那麼RX將它提供給我的事件不。

+0

很好的例子。謝謝。 – 2010-04-20 15:36:01

25

首先,IObservable 是事件。因此,在任何你使用內部事件的地方,你都可以使用IObservable--如果你以後需要將LINQ應用到這個事件中,你就可以在不重構的情況下完成。

其次,RX適合任何情況,當你需要運行你的代碼asynchronousely。例如,調用Web服務或加載大圖像。

但是,當真正開始閃耀 - 如果你的程序達到的IObservable使用的一些「臨界質量」,你開始結合不同的觀測,你會驚奇容易一些任務怎麼成了。

2

Rx非常通用,所以它具有無限的實用性,就像IEnumerable/IEnumerator具有無限的實用性一樣。 IE拉取值,IO推送值。 Foreach是IEnumerables派上用場的一個具體例子,但是這並不能解釋IEnumerable或者yield或者其他什麼。 Rx也一樣。

能夠從拉視角或推視角看東西,並且能夠控制方向或手段,是非常強大的,因爲現在您可以隨意推拉計算,針對IO使用LINQ查詢運算符來「免費」,因爲它是IE的數學對偶。

0

我剛剛我第一次看的Rx,但一個有趣的項目,我會用它來創造,在我們的ASP.NET MVC的Web應用程序顯示活動(這被稱爲動作方法的Silverlight插件,由用戶等)。 Rx似乎可以幫助解決此項目中的許多問題,例如併發管理和節流。

26

Rx允許您編寫一起編排併發事件的代碼。如果你曾經使用過TPL(即任務),那麼必須進行復雜的後空翻才能嘗試ContinueWith或WaitAll來做正確的事情,Rx是爲你準備的。

例如,「對於這個數組中的每個項目,調用一個Web服務,當所有這些請求都返回時,執行其他操作,如果其中任何一個失敗,就會失敗。

泄露,無恥插件:The book that Jesse Liberty and I wrote about Rx旨在解決這個問題,「我如何在日常工作中使用Rx?」; 「我能用做什麼?」

+0

這只是表明我需要或想要Rx – frostymarvelous 2017-02-05 15:55:30