《C#並發編程經典實例》—— Rx基礎
LINQ 是 對 序 列 數 據 進 行 查 詢 的 一 係 列 語 言 功 能。 內 置 的 LINQ to Objects( 基 於 IEnumerable<T>) 和 LINQ to Entities( 基 於 IQueryable<T>) 是 兩 個 最 常 用 的 LINQ 提 供 者。另外還有很多提供者,並且大多數都采用相同的基本架構。查詢是延後執行(lazily evaluated)的,隻有在需要時才會從序列中獲取數據。從概念上講,這是一種拉取模式。 在查詢過程中數據項是被逐個拉取出來的。
Reactive Extensions(Rx)把事件看作是依次到達的數據序列。因此,將 Rx 認作是 LINQ to events( 基 於 IObservable<T>) 也 是 可 以 的, 它 與 其 他 LINQ 提 供 者 的 主 要 區 別 在 於, Rx 采用“推送”模式。就是說,Rx 的查詢規定了在事件到達時程序該如何響應。Rx 在 LINQ 的基礎上構建,增加了一些功能強大的操作符,作為擴展方法。
本章介紹一些更常用的 Rx 操作。需要注意的是,所有的 LINQ 操作都可以在 Rx 中使用。 從概念上看,過濾(Where)、投影(Select)等簡單操作,和其他 LINQ 提供者的操作是 一樣的。本章不介紹那些常見的 LINQ 操作,而將重點放在 Rx 在 LINQ 基礎上增加的新 功能,尤其是與時間有關的功能。
要使用 Rx,需要在應用中安裝一個 NuGet 包 Rx-Main。支持 Reactive Extensions 的平台非 常豐富。
最後更新:2017-05-23 11:02:43