0

私はIObservable<T>まったく同じ T の 2 つ (またはそれ以上) を作成しています。それらは生成されておりTask<IEnumerable<T>>、そのうちの 1 つが他のものよりも早く戻ることができます。私が気にするのIObservableは、最初の値を返す だけです。これは、それ以降使用するものです。

ケンブリッジで開催された Jon Skeet のプレゼンテーションに出席したことを覚えています。彼は TPL を使用して非常に巧妙な方法でまさにこれを行いましたが、その方法を思い出せません! 理想的には、次のようなメソッドを取得します。

IObservable<T> PickFastestObservable<T>(IEnumerable<IObservable<T>> slowObservables);

しかし、タスクで直接実行する必要がある場合は、おそらく何かを解決できるでしょう.

自分に自信のあるものを自分で作り上げるのに苦労しています。

乾杯、

4

1 に答える 1

5

Observable.Ambが必要だと思います。

IObservable<T> fastest = slowObservables.Amb();
于 2012-09-06T17:57:26.043 に答える