3

すべてのオブザーバーのリストを格納するObservableクラスを実装しました。このリストには、メモリリークを防ぐためのオブザーバーへの弱参照を含める必要がありますか?

一般的な習慣は何ですか?

4

2 に答える 2

1

必ずというわけではありませんが、文脈によって異なります。一部のオブザーバーは、ログ記録などの単純なことをしたいだけで、Observable オブジェクトによって維持されることを好む場合があります。最善の方法は、オブザーバーが自分自身を明示的に登録解除する必要があるかどうかを知ることができるように、選択を明確に文書化することです。

于 2011-02-16T13:20:56.020 に答える
0

トピックIObservableから外れて、.NET 4 のインターフェイスだけでなく Rx を使用している場合は、スレッド セーフと呼び出し順序を処理するため、Subscribe呼び出しを のプライベート インスタンスにマップする必要があります。その後、サブジェクト インスタンスSubjectを呼び出すことができます。On*

トピックでは、サブスクライバーが独自のサブスクリプションを管理するのが一般的です。少なくとも、これはSubscribe戻り値を破棄することを意味しますが、Rx では通常、サブスクリプションは別の演算子 ( Takeor などTakeUntil) によって終了されます。

于 2011-02-16T19:48:11.020 に答える