8

私は2つのコンポーネントを持っています。1 つは Window アプリケーションで、もう 1 つは Window Service です。
メッセージ キュー (MSMQ) に書き込むウィンドウ アプリケーションとサービスがそれを読み取り、メッセージを処理します。
サービスは常に新しいメッセージのキューを探し続ける必要があります...コードに関しては、
無限whileループを使用する必要がありますか、Timer
または
キューに追加された新しいメッセージのキューにイベントまたはコールバックがありますか? そのため、ウィンドウ アプリケーションが新しいメッセージをキューに追加すると、サービスはそれを知ることができます。
私のアプリケーションを効率的にするために私が求めているのはこれだけなので、これを達成する他の方法があれば提案してください。
読んでくれてありがとう

4

1 に答える 1

13

イベントやループは必要ありません。Receiveメソッドはキューから読み取り、キューが空の場合、新しいメッセージが追加されるまでブロックします。その間に何か他のことをする必要がある場合は、受信コードを別のスレッドに入れます。

を使用して非同期アプローチを使用することもできますBeginReceive。これにより、メッセージがキューから読み取られたときに実際にイベントが発生します。

于 2012-07-11T16:41:42.157 に答える