C#的MessageQueue消息队列是多线程的么

 我来答
长时间的号发
2017-10-01 · 超过57用户采纳过TA的回答
知道小有建树答主
回答量:149
采纳率:0%
帮助的人:88.5万
展开全部
System.Messaging.Message[] messages = queue.GetAllMessages();

foreach (System.Messaging.Message message in messages)

{

//Do something with the message.

}

你也可以用GetMessageEnumerator2方法代替上面的MessageQueue.GetAllMessages方法。虽然这两个方 法的用法类似,但GetMessageEnumerator2只能向前(forward-only)。对于非常庞大的队列,则应用使用这个方法,而不是 MessageQueue.GetAllMessages方法。

这是因为GetAllMessages方法领取所有消息,把它们保存在当地内存中;而GetMessageEnumerator2方法只领取当前消息在本地保存,在调用MoveNext时才领取下一条消息。下面这条语句举例说明了GetMessageEnumerator2方法的用法。这段代码检查队列中的每一条消息,再删除它。

MessageEnumerator enumerator = queue.GetMessageEnumerator2();
while (enumerator.MoveNext())

enumerator.RemoveCurrent();
不过没有你想要的想删哪条就删哪条的那个用法似乎。。。
-
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式