4

既存のMicrosoftメッセージングキューを常にポーリングする代わりに、MSMQが何らかのイベント/通知を発生させて、メッセージが利用可能であることをアプリケーションに通知できるかどうかを知りたいのですが。

4

2 に答える 2

2

MessageQueue通知が不十分で、メッセージが到着したという通知がありません(MessageQueueクラスを参照) 。

自分で通知を実装できます。これが適切な実装です(単純なMSMQリスナーヘルパークラスを参照) 。

于 2012-08-05T12:17:07.533 に答える
1

これは古い質問ですが、キューでメッセージを受信したときにヒットするイベントを探してここに来ました。これが私がしたことです:

   private static MessageQueue _messageQueue = null;
    static void Main(string[] args)
    {

        if (MessageQueue.Exists(@".\Private$\orders"))
        {
            _messageQueue = new MessageQueue(@".\Private$\orders") {Label = "Testing Queue"};
        }


        _messageQueue.ReceiveCompleted += new ReceiveCompletedEventHandler(OnMessageRecieved);
        _messageQueue.BeginReceive();

        Console.ReadLine();

    }

    private static void OnMessageRecieved(object sender, ReceiveCompletedEventArgs e)
    {
        //Process your message here. 
        _messageQueue.BeginReceive();
    }
于 2016-11-10T08:41:24.777 に答える