2013-01-16 25 views
2

我需要使用push-model返回一個項目集合(與IEnumerable類似,不像pull)。但是,我不確定是否應該使用來自被動擴展的IObservable或來自TPL Dataflow的ISourceBlock。何時使用ISourceBlock或IObservable

它們看起來非常相似,在什麼情況下應該選擇一個嗎?

+0

http://blog.stackoverflow.com/2011/08/gorilla-vs-shark/ – Servy

+0

@Servy:它不那麼清晰。它更像是一種類型的大猩猩與另一種類似的大猩猩,但在某些方面不同。 –

+0

我稍微改了一下這個問題。我不是在尋找一個明確的答案,哪一個更好,而是一些選擇它們的指導方針。 – Hans

回答

2

基本上,我認爲答案歸結爲你將如何使用結果。如果您想使用TPL Dataflow處理它們,請返回ISourceBlock<T>。如果您要使用Rx處理它們,請使用IObservable<T>

如果您不知道,我認爲最好是返回ISourceBlock<T>,因爲it can be easily converted to IObservable<T>