0

Dllimportディレクティブを使用してC#WPFプロジェクトに含めているサードパーティのdllがあります。特定のハードウェアイベントが発生したときにコールバックとして呼び出す静的なc#関数があります。

古い学校のPostMessageが達成することを達成したいと思います。コールバックが発生したことをメインウィンドウに通知するだけです。ウィンドウを取得してキャストし、メインウィンドウの関数を直接呼び出すことができることはわかっていますが、それは少し不安定なようです。私は古い非同期PostMessageパターンが好きです。おそらく私の質問は、アプリ内のいくつかのコンポーネントを緩く結合することに関するものです。

コマンドを呼び出すだけでいいですか?

4

1 に答える 1

0

あなたが提案するように、疎結合イベントの使用を検討する必要があります。いくつかの有用な出発点は次のとおりです。

これらはすべて、同様の pub-sub メッセージングを行います。

あなたのコールバックは別のスレッドにあると思われるので、おそらく Dispatcher.Invoke を使用して UI スレッドへの呼び出しをマーシャリングする必要があります。

于 2012-05-05T14:02:51.750 に答える