Llo*_*ell 12 .net c# multiple-instances c#-2.0
好的,所以我创建了我的c#应用程序,为它创建了一个安装程序,并在我的机器上安装了它.
问题是,当用户打开应用程序exe两次时,将运行两个应用程序实例.我只想要一个应用程序的一个实例随时运行,我该怎么做呢?
谢谢你的帮助,
常见的技术是创建一个命名Mutex并检查它在应用程序启动时的存在.
DDJ的代码:
class App : Form
{
Mutex mutex;
App()
{
Text = "Single Instance!";
mutex = new Mutex(false, "SINGLE_INSTANCE_MUTEX");
if (!mutex.WaitOne(0, false))
{
mutex.Close();
mutex = null;
}
}
protected override void Dispose(bool disposing)
{
if (disposing)
mutex.ReleaseMutex();
base.Dispose(disposing);
}
static void Main()
{
App app = new App();
if (app.mutex != null) Application.Run(app);
else MessageBox.Show("Instance already running");
}
}
Run Code Online (Sandbox Code Playgroud)
我解决了这个问题
[STAThread]
static void Main()
{
Process[] result = Process.GetProcessesByName("ApplicationName");
if (result.Length > 1)
{
MessageBox.Show("There is already a instance running.", "Information");
System.Environment.Exit(0);
}
// here normal start
}
Run Code Online (Sandbox Code Playgroud)
这很简单,但我没有时间检查更好的解决方案.
| 归档时间: |
|
| 查看次数: |
11563 次 |
| 最近记录: |