0

オブジェクトがSystem.Timers.Timerあり、そのElapsedメソッド内で呼び出したいのですが、その呼び出しがで作成されmyObject.TriggerEvent(...)たスレッドで発生するようにします。myObjectこれを行う簡単な方法はありますか?そして、これは何らかの理由で悪い考えですか?myObject基本的にはイベントマネージャーサービスなので、作成されたスレッドでイベントをトリガーしたいと思います。私がタイマーを使用している理由は、更新のためにサービスをポーリングしている別のタイマーがあり、それがメソッドmyObjectを介して通知されるためです。TriggerEvent

4

2 に答える 2

1

独自のSynchronizationContext実装を作成し、そのインスタンスを の呼び出し元に提供できますmyObject.TriggerEventmyObjectWPF、SL、または WinForms アプリケーションで使用している場合は、SynchronizationContext クラスの既存の実装を使用しmyObjectて、GUI スレッドで作成できます。

于 2012-07-03T19:13:34.597 に答える
0

Dispatcherの使用をお勧めします。WPF のコンテキストで作成されましたが、他の場所で使用できない理由はありません。数回使用しましたが、常にメッセージ ポンプ (Win32) がありましたが、サービス コンテキスト (IIS など) でも使用できると思いますが、そのようなコードは書いていないので、 YMMV。これは、WPF の観点からの優れた記事です。

エリック

于 2012-07-03T20:05:20.853 に答える