如何实现MSMQ触发器

本文关键字:MSMQ 触发器 实现 何实现 | 更新日期: 2023-09-27 18:11:38

有人能解决我的问题吗?

我想在MSMQ队列中插入一些数据时触发一个事件,我怎么能做到呢?

如何实现MSMQ触发器

创建消息队列实例,并开始异步查看它:

MessageQueue queue = new MessageQueue( @".'PRIVATE$'Queue" );
queue.BeginPeek( TimeSpan.Infinite, null, OnMessageAdded);

当消息被添加到队列中时调用注册回调。既然您没有解释真正的问题是什么,我假设您希望了解添加到队列中的新消息:

private void OnMessageAdded( IAsyncResult ar )
{
    Message peekedMessage = queue.EndPeek(ar);
    //Do whatever you want. Raise a new event, process the message, ...
}

消息未从队列中取出。您可以使用该消息,但它仍保留在队列中。因此,如果您不需要Message,您可以简单地调用queue.EndPeek(ar);而不使用结果。