跨网络互斥 - C#.NET

时间:2010-02-01 11:15:55

标签: c# mutex

我在共享系统上有一个消息队列。该队列由2个进程访问,这些进程在另外2台机器上运行。我需要通过2个进程控制对此队列的访问。所以我需要一个“网络互斥体”。我怎样才能做到这一点?

我认为这不是C#.NET中支持的,但是如果我错过了一些非常明显的东西,请指出我正确的方向。之前已经问过这个问题,但建议的解决方案涉及数据库。我没有任何问题数据库。

How To Mutex Across a Network?

3 个答案:

答案 0 :(得分:3)

您需要第三个进程,它实际上拥有排队的项目。这两个工人分别向第三个流程询问下一个项目,这是第三个流程,它控制访问并充当锁定。

答案 1 :(得分:1)

使用MSMQ或其他排队系统设计在网络中使用。

Win32没有像muxtex这样的跨机器同步原语,你可以从文件锁定中构建一些东西,但你只需要重新发明MSMQ。

答案 2 :(得分:1)

我想我找到了我想要的东西......事实证明这是一个简单的属性设置!

http://msdn.microsoft.com/en-us/library/system.messaging.messagequeue.denysharedreceive%28VS.80%29.aspx

应该先探索一下!!

Jeff key报告了这个问题和他的经历: http://weblogs.asp.net/jkey/archive/2004/05/12/130922.aspx

谢谢大家的帮助。