【发布时间】:2012-02-06 15:36:42
【问题描述】:
附加信息
我再次就上述问题写信(防止我的应用程序的多个实例)
如果我从程序菜单/桌面快捷方式启动两个实例,则该代码有效。但在我的环境中,
一个实例正在从窗口服务运行。
另一个来自具有相同参数的桌面快捷方式。
对如何编写代码有帮助吗?
【问题讨论】:
-
为什么不允许?我之所以问,是因为如果该程序类似于侦听固定端口号的服务器,那么您实际上不必做任何特别的事情。
-
@hvd,有许多类型的程序,不应该允许执行多个实例。否则,系统库中就不会有互斥锁。
-
是的,应用程序是一个服务器,但它可以为多个实例运行,但不能使用相同的参数。如果我们从窗口服务传递相同的参数并启动 ABC.exe 并从具有相同参数 ABC.exe 的桌面快捷方式启动第二个不应该启动。
-
@Griwes 我并不是说没有充分的理由,我知道有很多正当的理由。但根据原因,我认为可能有更简单的解决方案。
-
@hvd,比如什么?在这种情况下,Mutex 似乎是完美的——他希望防止使用相同的参数运行——这就是它,命名为 mutex。
标签: c++ visual-c++ mfc