.net 如何只允许在服务器上创建1个命名信号量?

.net 如何只允许在服务器上创建1个命名信号量?,.net,semaphore,.net,Semaphore,我想在我的应用程序中创建一个信号量,如果应用程序的另一个实例正在运行并且已经创建了信号量,那么创建将失败(有一个明显的例外)。所以每个服务器只有一个 我希望在整个系统中只保留一个限制,而不仅仅是CLR。但我不希望它跨多个服务器(或VM)运行。i、 e.我希望应用程序能够在两个不同的服务器上运行 这可能吗?如果是,怎么做 谢谢-戴夫,你可以用它 命名系统互斥体在整个操作系统中可见,可用于同步进程的活动 你确定框架本身没有偷偷地为其内部使用创建一个或多个吗?有没有方法也在互斥中进行计数?我主要将信号

我想在我的应用程序中创建一个信号量,如果应用程序的另一个实例正在运行并且已经创建了信号量,那么创建将失败(有一个明显的例外)。所以每个服务器只有一个

我希望在整个系统中只保留一个限制,而不仅仅是CLR。但我不希望它跨多个服务器(或VM)运行。i、 e.我希望应用程序能够在两个不同的服务器上运行

这可能吗?如果是,怎么做

谢谢-戴夫,你可以用它

命名系统互斥体在整个操作系统中可见,可用于同步进程的活动


你确定框架本身没有偷偷地为其内部使用创建一个或多个吗?有没有方法也在互斥中进行计数?我主要将信号量用于计数机制。唯一的一个应用程序是次要需求。
bool b = true;
Mutex mutex = new Mutex(true, "MyMutex", out b);
if (!b) throw new InvalidOperationException("Another instance is running");