首页 新闻 搜索 专区 学院

有什么方法可以模拟出微软的MSMQ的功能?

0
[已关闭问题] 关闭于 2012-02-28 16:20

最近在做一个项目,客户之前是通过MSMQ来实现线程之间的通信的,但是现在客户不想安装MSMQ组件了,想通过其他方式来代替MSMQ的功能,请问有什么好的方法吗?可以实现消息队列机制的?

MessageQueue _inQueue = new MessageQueue(".\\Private$\\Stream_" +_id);           

MessageQueue _outQueue = new MessageQueue(".\\Private$\\Stream_" + _id + "_ack");

问题补充:

我想要实现的功能大概是这样的,一个main.cs开始启动程序,这个就是主线程了mainthread,然后main.cs中调用file.cs中的方法用文件流写数据,这时候创建了两个子线程thread1和thread2,分别向file1.txt和file2.txt中写数据,然后等待两个线程的操作都完成了,向main.cs发送一个通知notify,然后程序就回来main.cs中来调用验证方法verifymethod来验证两个文件中的数据,验证完成后在向file.cs发送通知notify,然后thread1和thread2收到通知再次向file1和file2中写数据,写完后发送通知给main.cs,然后回到main.cs来验证俩个文件中的数据,大概流程是这样的,以前用MSMQ的话由于它自带的有send()和receive()来接收通知notify,现在没有了,我就不知道怎么办了

halia的主页 halia | 初学一级 | 园豆:12
提问于:2012-02-20 18:10
< >
分享
所有回答(1)
0

MSMQ是一个队列,你可以把消息存在数据库,然后用程序读取数据库中的消息来模拟

以上只是建议,没有验证

artwl | 园豆:16536 (专家六级) | 2012-02-20 20:02

感谢回复,我的项目中用到MSMQ的作用就是实现多线程之间的通信,我有一个主线程在main.cs中,然后会调用到file.cs中的方法,在file.cs中有对文件流filestream的操作,同时要往两个.txt文件中写数据,写完后通过message.send方法通知main.cs,然后继续执行main.cs中的内容。所以用数据库这个是不是cost太大了。

支持(0) 反对(0) halia | 园豆:12 (初学一级) | 2012-02-20 20:17

@halia: 这样的话可以把消息放在内存中啊

支持(0) 反对(0) artwl | 园豆:16536 (专家六级) | 2012-02-20 20:32

@artwl: 能不能举个例子什么的,实在是没这方面的编码经验

支持(0) 反对(0) halia | 园豆:12 (初学一级) | 2012-02-21 07:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册