问个关于MSMQ的问题

limaolinghu 2007-02-02 02:34:46
向一个队列里面发送消息后,不从这个队列取消息,有什么办法获得刚发送消息的ID?
换句话 说, 如何得到本进程刚刚发送消息的ID,考虑到在同一时刻有多个进程向同一个队列里面发消息。
...全文
289 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
JavaK 2007-03-02
  • 打赏
  • 举报
回复
哦,开始还没看清楚,是乎可以用附加消息(在本来的消息中再加上可以区分的你的问题的消息)去做
limaolinghu 2007-02-02
  • 打赏
  • 举报
回复
好的
有A,B两个进程向同一个队列里面发送消息,都需要应答队列,也就是AdministrationQueue,来判断消息是否发送成功。
如果用同一个应答队列就会出现上述问题。
世魁 2007-02-02
  • 打赏
  • 举报
回复
不如将你完整的设计说一下,为什么要获取刚发送的消息的ID?
看看是不是其他外围的设计有问题
limaolinghu 2007-02-02
  • 打赏
  • 举报
回复
目前我唯一知道一个办法就是,A,B两个进程,建立两个消息队列。
但是,老版不同意
limaolinghu 2007-02-02
  • 打赏
  • 举报
回复
to viena
可以,但是怎么区分,哪个是我想要的?
viena 2007-02-02
  • 打赏
  • 举报
回复
遍历查找可不可以?
limaolinghu 2007-02-02
  • 打赏
  • 举报
回复
to JavaK()
假设有A,B两个进程,A,B同时发送了消息,然后A取消息,虽然A这时候希望取道自己刚刚发送的那条,但是会有可能会取到B发送的那条。

to book_liushk(世魁)
我们想的是同一个办法,但是,我就是没有办法获得刚刚发送消息的ID
世魁 2007-02-02
  • 打赏
  • 举报
回复
似乎无法实现,不如换个思路:在消息内有一字段标识唯一ID
JavaK 2007-02-02
  • 打赏
  • 举报
回复
你所说的前进程是指你接收的最后发的发送的进程吗?那取MessageQueue.GetAllMessages的最后一条不就是了?
limaolinghu 2007-02-02
  • 打赏
  • 举报
回复
多谢楼上的,但是如果用Peek的话,我没办法保证这条消息就一定是但前进程刚刚发送的阿,有可能在这期间刚好有其他进程发送了一条消息
csShooter 2007-02-02
  • 打赏
  • 举报
回复
路过。。。up
viena 2007-02-02
  • 打赏
  • 举报
回复
MessageQueue.Peek方法
返回但不移除(查看)此MessageQueue所引用的队列中的第一条消息

MessageQueue.GetAllMessages方法
返回位于队列中的所有消息(Message类型数组)

MessageQueue.GetMessageEnumerator2方法
为队列中的所有消息创建枚举数对象

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧