我想在我的应用中创建一个信号量,如果应用的另一个实例正在运行并且已经创建了信号量,那么创建将失败(有明显的例外)。所以每个服务器只有一个。
我希望系统只有一个限制,而不仅仅是CLR。但我不希望它跨越多个服务器(或VM)。即我希望该应用程序能够在2个不同的服务器上运行。
这可能吗?如果是这样,怎么样?
谢谢 - 戴夫
答案 0 :(得分:1)
您可以使用System.Threading.Mutex
。
命名系统互斥体在整个操作系统中都是可见的,可用于同步进程的活动。
bool b = true;
Mutex mutex = new Mutex(true, "MyMutex", out b);
if (!b) throw new InvalidOperationException("Another instance is running");