それは同等/より良い仕事ですか
- イベントタイプのイベントモジュールを使用
- または、イベントの公開プロパティでObservable を使用
機能的には同等のようですが、違いは「セマンティック」だと思います:
- イベントの内部状態にアクセスすることが理にかなっている境界の内側にいますか?
- それとも、このイベント インターフェイスを、ストリームが公開されたパッシブ ソースと見なしているのでしょうか。
それは正しい考え方ですか?
それは同等/より良い仕事ですか
機能的には同等のようですが、違いは「セマンティック」だと思います:
それは正しい考え方ですか?
との主な違いはEvent
、Observable
状態とサブスクリプション解除の処理方法にあります。
イベント関数はソース イベントにアタッチされ、サブスクライブを解除する方法はありません。ステートフル コンビネーター ( などEvent.scan
) を使用し、結果のイベントに複数のオブザーバーをアタッチすると、それらはすべて同じ状態になります。
監視可能な関数は、処理パイプラインの「仕様」を構築します。ハンドラーをIObservable
value にアタッチするIDisposable
と、すべてのハンドラーを削除するために使用できる が返されます。に接続された各ハンドラーIObservable
は、新しい状態を取得します (ランタイムが「仕様」に従って新しい処理チェーンを作成するため)。
実際には、主な違いは statfullness にあります-状態を共有したい場合は、Event
モジュールを使用できます-同じ使用を実装することObservable
は可能ですが、より困難です。
内でイベントを使用している場合は、 (ビルトインの代わりに) andasync
を使用する必要があります。これは、イベント コンビネーターを使用するとメモリ リークが発生するためです。削除されないイベント ハンドラーがアタッチされます。Observable
AwaitObservable
AwaitEvent