4

私のCompositeWPFアプリケーションには、ユーザーがコントロールをダブルクリックしたときに公開されるイベントがあります。モジュールはイベントをサブスクライブし、必要に応じてアクションを実行します。

このイベントはランダムに機能しなくなったようです。アプリケーションを実行すると、問題なくイベントをトリガーできる場合もあれば、モジュールがイベントの受信を停止する前に数回しかトリガーできない場合もあります。

デバッガーを見ると、CALにEventAggregatorはまだイベントがありますが、イベントにはサブスクリプションがありません。EventAggregatorサブスクリプションを失うにはどうすればよいですか?

4

1 に答える 1

4

サブスクリプションを削除したのはガベージコレクターでした。内部を読む必要がありますが、交換したとき

this.mEventAggregator.GetEvent<SomeEvent>().Subscribe(SomeFunction);

this.mEventAggregator.GetEvent<SomeEvent>().Subscribe(
    SomeFunction, ThreadOption.UIThread, true);

それは働き始めました。UIスレッドのパラメーターは私の問題ではありませんでしたが、他の人にとっては、正しいスレッドでイベントを処理していることを確認することが重要な場合があります。

于 2009-07-15T17:26:48.987 に答える