.NET-限制执行单元的实例数
-
08-10-2019 - |
题
假设我有一个用C#编写的名为Equiptctrl.exe的应用程序,该应用程序在PC上作为本地流程运行以控制一件设备。
显然,我只想拥有一个设备实例,可以在每个PC上运行。如果我有两个设备可以控制每辆PC,则将其限制为每台PC的两个实例。
我的方式是1个过程名称之一。我将流程eqctrl命名,并且在过程启动时,它将用名称为“ eqctrl”计数数字进程。 2.执行名称。在启动时,用执行名称Equipctrl.exe计数流程数。 3.注册记录。 4. SQL Server数据库记录。
对我来说,过程名称或执行名称检测是最简单的,我最多的时间(如果不是全部)。但是,他们容易命名冲突。即使我进一步了解执行路径,也可以通过将执行文件复制到另一个文件夹来规避限制。
执行.NET执行执行的最佳方法是什么?为什么?注册表记录是最好的方法吗?
其他提示
斯科特·汉塞尔曼(Scott Hanselman)的博客有一篇很棒的文章...
您可以使用名为Mutex Semaphore的计数来执行此操作,还可以确保您创建的Mutex/Semaphore前缀以Global 和local 否则,否则远程否则不会读取这些名为Mutex的Mutex,并且计数将丢失。
http://msdn.microsoft.com/en-us/library/ms682411(vs.85).aspx
不隶属于 StackOverflow