深入理解C#Rx的主要接口
這篇文章主要介紹了C# Rx的主要介面深入理解的相關資料,需要的朋友可以參考下
##C# Rx的主要介面深入理解
IObservable / IObserver 介面在.NET Framework 4.0基底類別庫中可用,並且它們包含在可以安裝在.NET 3.5 ,Silverlight 3和4以及JavaScript中的套件中。
IObservable/IObserver
Rx將非同步和基於事件的資料來源公開為基於推送的可觀察序列,由.NET Framework 4.0中的新IObservable 介面抽象。 這個IObservable 介面是用於基於拉的,可枚舉集合的熟悉的IEnumerable 介面的雙重。 它表示可以觀察到的資料來源,這意味著它可以向任何有興趣的人發送資料。 它維護一個代表這種感興趣的監聽器的依賴IObserver 實現的列表,並且自動地通知它們任何狀態變化。
模型的另一半由IObserver 介面表示,它表示透過訂閱註冊興趣的觀察者。 隨後將項目從其訂閱的可觀察序列遞送給觀察者。
Next可以被呼叫零次或更多次。 例如,用於滑鼠移動事件的可觀察資料來源可以在每次滑鼠移動時發出一個Point物件。 其他兩種方法用於指示完成或錯誤。
public interface IObservable<out T> { IDisposable Subscribe(IObserver<T> observer); } public interface IObserver<in T> { void OnCompleted();// Notifies the observer that the source has finished sending messages. void OnError(Exception error); // Notifies the observer about any exception or error. void OnNext(T value); // Pushes the next data value from the source to the observer. }
行為。
IObservable<int> source = Observable.Range(1, 5); //creates an observable sequence of 5 integers, starting from 1 IDisposable subscription = source.Subscribe( x => Console.WriteLine("OnNext: {0}", x), //prints out the value being pushed ex => Console.WriteLine("OnError: {0}", ex.Message), () => Console.WriteLine("OnCompleted"));
查詢以執行過濾,分組,合成等運算。為了讓可觀察序列更有用,Rx程式集提供了許多工廠LINQ運算子,因此您不需要自己實作任何這些 。 這將在使用LINQ運算子的查詢可觀察序列主題。
警告:
您不需要自己實作IObservable / IObserver 介面。 Rx為您提供這些介面的內部實現,並透過Observable和Observer類型提供的各種擴充方法暴露它們。 有關詳細信息,請參閱建立和查詢可觀察序列主題以上是深入理解C#Rx的主要接口的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

使用 C# 的 Active Directory 指南。在這裡,我們討論 Active Directory 在 C# 中的介紹和工作原理以及語法和範例。

多線程和異步的區別在於,多線程同時執行多個線程,而異步在不阻塞當前線程的情況下執行操作。多線程用於計算密集型任務,而異步用於用戶交互操作。多線程的優勢是提高計算性能,異步的優勢是不阻塞 UI 線程。選擇多線程還是異步取決於任務性質:計算密集型任務使用多線程,與外部資源交互且需要保持 UI 響應的任務使用異步。
