假設我有一些類MyClass。在我的代碼一個部分,我想是這樣的:在另一個地方(文件/項目/時間)我可以獨立訂閱/發佈Reactive Extensions嗎?
Observable.Subscribe<MyClass>(myClass => DoSomething(myClass));
然後,我有這樣的事情:
Observable.Publish(instanceOfMyClass);
這第二行觸發所有方法那些訂閱的確切類的類型。這是Reactive Extensions(v1或v2)支持的東西嗎?
將SynchronizationContext指定爲Subscribe調用的一部分將會很有用。在那裏指定是否應該用WeakReference保持方法也是很好的。 Publish方法應該能夠同步完成,或者給我一些我可以等待的東西。
向我解釋「OnNext」?這是否會觸發多個用戶?如果我讓「d」超出範圍會發生什麼?當垃圾收集器「來回」或「不會」時它會處理嗎? – Brannon 2012-04-19 21:50:29
調用'OnNext'給主體下一個自己的可觀察序列的值,這個值將被髮送給主體的任何和所有用戶。如果你讓'd'超出範圍,什麼都不會發生。 GC將收集該變量,但它永遠不會調用Dispose,因此它不會取消任何訂閱。調用'Dispose'總是程序員的責任。在Rx的情況下,如果您想提早取消訂閱,即在自然地調用「OnCompleted」或「OnError」之前,您只需調用Dispose。 – Enigmativity 2012-04-20 00:01:02