如何接收MSMQ消息

如何接收MSMQ消息,msmq,netmsmqbinding,msmq-wcf,Msmq,Netmsmqbinding,Msmq Wcf,接收MSMQ消息的最佳方式是什么 我使用了以下代码,但在收到MSMQ消息后,队列中的消息没有被删除 var msgEnumerator = myQueue.GetMessageEnumerator2(); var messages = new List<System.Messaging.Message>(); while (msgEnumerator.MoveNext(new TimeSpan(0, 0, 1)))

接收MSMQ消息的最佳方式是什么

我使用了以下代码,但在收到MSMQ消息后,队列中的消息没有被删除

var msgEnumerator = myQueue.GetMessageEnumerator2();
            var messages = new List<System.Messaging.Message>();
            while (msgEnumerator.MoveNext(new TimeSpan(0, 0, 1)))
            {
                var msg = myQueue.ReceiveById(msgEnumerator.Current.Id, new TimeSpan(0, 0, 1));
                messages.Add(msg);
                for (int i = 0; i < messages.Capacity; i++)
                {
                    String DataMessages = messages[i].ToString();
                }
var msgEnumerator=myQueue.GetMessageEnumerator2();
var messages=新列表();
while(msgEnumerator.MoveNext(新的时间跨度(0,0,1)))
{
var msg=myQueue.ReceiveById(msgEnumerator.Current.Id,new TimeSpan(0,0,1));
添加消息(msg);
for(int i=0;i
但是我不能接收信息


如何接收这些消息。

我将使用asynchronous MessageQueue.BeginPeek开始侦听队列:

queue.BeginPeek();
然后向MessageQueue.PeekCompleted事件注册处理程序:

queue.PeekCompleted += new PeekCompletedEventHandler(MessageHasBeenReceived);
然后在处理程序中使用MessageQueue.EndPeek访问消息。记住再次调用BeginPeek

private void MessageHasBeenReceived(object sender, PeekCompletedEventArgs e)
{
    // Get message
    var msg = queue.EndPeek(e.AsyncResult);

    // Do message processing here
    ....

    // Remove message from queue
    queue.ReceiveById(msg.Id);

    // Listen for more messages
    queue.BeginPeek();
}

请参见此处示例。

我将使用asynchronous MessageQueue.BeginPeek开始侦听队列:

queue.BeginPeek();
然后向MessageQueue.PeekCompleted事件注册处理程序:

queue.PeekCompleted += new PeekCompletedEventHandler(MessageHasBeenReceived);
然后在处理程序中使用MessageQueue.EndPeek访问消息。记住再次调用BeginPeek

private void MessageHasBeenReceived(object sender, PeekCompletedEventArgs e)
{
    // Get message
    var msg = queue.EndPeek(e.AsyncResult);

    // Do message processing here
    ....

    // Remove message from queue
    queue.ReceiveById(msg.Id);

    // Listen for more messages
    queue.BeginPeek();
}
请看这里的例子