最近在做一个项目,客户之前是通过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,现在没有了,我就不知道怎么办了
MSMQ是一个队列,你可以把消息存在数据库,然后用程序读取数据库中的消息来模拟
以上只是建议,没有验证
感谢回复,我的项目中用到MSMQ的作用就是实现多线程之间的通信,我有一个主线程在main.cs中,然后会调用到file.cs中的方法,在file.cs中有对文件流filestream的操作,同时要往两个.txt文件中写数据,写完后通过message.send方法通知main.cs,然后继续执行main.cs中的内容。所以用数据库这个是不是cost太大了。
@halia: 这样的话可以把消息放在内存中啊
@artwl: 能不能举个例子什么的,实在是没这方面的编码经验