VB.NET:イベントマネージャーの構築 - リスナー
-
20-09-2019 - |
質問
私はコンピュータゲームイベントのカスタムイベントマネージャの開発が必要となるプロジェクトの研究段階にいますよ。
ポーリングのための過去には、のルーティングのコードイベントの消費のためのコードの正しい部分は、イベントマネージャののでprocessEvents()の機能の中に完全に配置されています。例:UIは、マウスクリックイベントを消費する機会が提供される必要があるが、プレイヤオブジェクトにはありません。
今後のプロジェクトのサイズはかなり大きい、と私はそれがのprocessEvents()関数内でのルーティングのこのタイプを入れたという迷惑になって見ることができます。
私の読んだ最後の夜の間に、私はのリスナーの登録&登録解除の考え方についてお読みください。
これは素晴らしいアイデアのように聞こえるが、私はこの作品正確にどのようにか、どのように私はVB.NETでそれを実装し、完全な喪失でね。私は概念がこれですと仮定します。私は新しいのモンスターのオブジェクトを作成した場合、それはBombExplodeイベント全体に来れば、私は何とか、イベントマネージャによってイベントの処理中などGunShoot、BombExplode、などのイベントタイプのリスナーとして登録します彼らはイベントを消費することができれば、それは各リスナーが登録をポーリングします。
これはVB.NETで効率的に実装することができる方法?
感謝します。
解決
これは WeakEvent柄 .NETでます。
あなたが加入した場合は実装 IWeakEventListenerする適切に、かつ適切な WeakEventManager のクラスを作成し、あなたメモリ「リーク」を引き起こし寿命の問題を心配することなく、(さまざまな方法で実施することができる)、「イベントマネージャ」イベントを聴いたリスナーを持つことができます。