質問

デジタル信号取得システム、データを押すと、オブザーバーシステムの一つ。

例から Wikipedia/Observer_pattern:

foreach (IObserver observer in observers)
    observer.Update(message);

場合などユーザアクションからの例GUIスレッドのデータを止めをかけるしたい休憩にオブザーバーに接続での処理のオブザーバー alltogether.

一言:からのデータソース、センチネルの値を処理します。がるがりの遅延されます。

もちろん、データが得られない場合にはポンプのスレッドばかりのためのアドレスのオブザーバーが見つかのメッセージの送信を破壊したオブジェクトです。

は誰かが作った"公用"のデザインパターンに対抗す。なのでしょうか。

役に立ちましたか?

解決

したい場合は、データソースかつ安全側の並行処理ではないかと少なくとも一つのポインタを通して常に安全として利用します。そのオブザーバオブジェクトは一生のう機会を設けていきたいと思い期以前のデータソースです。

この機能を追加するだけでオブザーバーから削除します。きの各オブザーバーはコアの実施自体がついてこの委譲タスクをObserverImplオブジェクトです。いロックにアクセスimplオブジェクトです。このなかでのGUI unsubscriberうに詰まることになった場合にオブザーバーは忙しいのObserverImplオブジェクトです。場合はGUIに対応すべきではないでしょうかを利用する事ができな兼職-キュー機構登録解除の仕事を押し込んでいきます。(PostMessage Windows)

が配信停止について、あなただけの振替中核実施のためのダミーの実装です。再びこの操作はブ、ロックが解除されます。このことは実際の導入の一部のデータソースからでも"ロック-ポインタのスワップ-ブロックを解除する"といえるのかもしれませんそこにあるのは、リアルタイム。

いようにしたい場合を積み重ねオブザーバオブジェクトだけに含まれるダミーでやらなければいけないということか簿が、これにより抜かないオブジェクトを持つのポインタをオブザーバオブジェクトそのニーズをクリックします。

最適化いつものおくに実装(インタビュー+ダミー)生きていて、オブザーバー自体にすることができなく実際のロックを使うInterlockedExchangePointerるスワップのポインタ.最悪のシナリオ:委譲呼び出しのポインタが入れ替わり-->なすべてのオブジェクトを生かしておくと委託継続することができる。次に委譲される新しい実装オブジェクトです。(限り新しいスワップのコース)

他のヒント

ばメッセージを送るすべてのオブザーバに通知し、データソースが終了すように、オブザーバを削除自らをクリックします。

に対応し、コメントの実施にオブザーバーパターンできるものでなければならな動的追加-除去している。クライアントまで、フルのC#のイベントシステムは対象/オブザーバーパターンがオブザーバーを使用して追加 event += observer 除去用 event -= observer.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top