2012-07-11 6 views
6

2つのコンポーネントがあります。 1つはウィンドウアプリケーションであり、もう1つはウィンドウサービスです。
ウィンドウMessage Queue(MSMQ)へのアプリケーション書き込みとサービスがメッセージを読み取り、メッセージを処理しています。
は、コードの面では...新しいメッセージをキューに探し続ける、常にサービスを提供すべきはずI
使用無限ループwhileまたはTimer
OR
新しいメッセージがキューに追加のキュー上の任意のイベントまたはコールバックがありますか?そのため、ウィンドウアプリケーションがキューに新しいメッセージを追加すると、サービスはそのことを知ることができます。
これは私のアプリケーションを効率的にすることを求めています。これを達成するための他の方法があれば、提案することができます。
ありがとうございますキューに追加された新しいメッセージのMSMQにイベントまたはコールバックがあります

答えて

11

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

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

関連する問題