【发布时间】:2010-06-07 11:18:12
【问题描述】:
我想确保只有一个应用程序实例运行...
我添加了互斥检查,但它在 64 位系统中导致问题。第二种方法是搜索进程表。重命名应用程序可以轻松击败此检查。请告诉我如何确保只有一个应用程序实例运行。
以下代码用于互斥锁
bool createdNew = true;
using (Mutex mutex = new Mutex(true, "MyApplicationName", out createdNew))
{
if (createdNew)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
这个问题在 XP 64 位上 2 或 3 分钟后它会生成 StackOverflowExcpetion 并导致我的应用程序崩溃。我彻底测试并得出结果是使用互斥锁导致了这个问题
【问题讨论】:
-
互斥体会导致什么问题?
-
在调试器中运行代码并查看调用堆栈。
标签: c#