由于我尝试了多种方法来阻止在.net compact framework 3.5 上运行的手持设备上的多实例问题。
目前,我通过创建“Mutex”得到了解决方案,并检查是否有相同的进程正在运行。我将此语句放在“Program.cs”中,该语句将在程序启动时第一次执行。
但我认为这不是我的问题,因为我收到用户的请求,他们需要在“程序图标”运行时禁用它。
我理解用户的观点,有时他们可能会在短时间内多次或多次“打开”程序。所以,如果它仍然能够“打开”。这意味着程序将需要初始化自己,并且最终可能会失败。是否可以绝对防止多重实例?还是有另一种无需编程的方法,例如在 Windows CE 上编辑注册表?
这是我的源代码:
bool firstInstance;
NamedMutex mutex = new NamedMutex(false, "MyApp.exe", out firstInstance);
if (!firstInstance)
{
//DialogResult dialogResult = MessageBox.Show("Process is already running...");
Application.Exit();
}
NamedMutex 是来自 OpenNetCF 的类。