从应用程序运行一个实例

Ahm*_*hmy 4 c# semaphore

我有一个Windows应用程序(C#),我需要将其配置为当时从应用程序运行一个实例,这意味着一个用户单击.exe文件并运行应用程序并且用户没有关闭第一个实例正在运行的应用程序,需要运行下一个实例,因此它应该出现在第一个实例而不是打开新实例.

任何人都可以帮我怎么做?

提前致谢

kaz*_*aze 10

我经常通过检查具有相同名称的其他进程来解决此问题.这样做的优点/缺点是你(或用户)可以通过重命名exe来"退出"检查.如果您不希望这样,您可能会使用返回的Process对象.

  string procName = Process.GetCurrentProcess().ProcessName;
  if (Process.GetProcessesByName(procName).Length == 1)
  {
      ...code here...
  }
Run Code Online (Sandbox Code Playgroud)

这取决于你的需要,我认为绕过检查没有重新编译是很方便的(它是一个服务器进程,有时作为服务运行).