在.net中制作单实例应用程序的最佳方法是什么?

可能重复:
创建单个实例应用程序的正确方法是什么?
在.NET中阻止给定应用程序的多个实例?

我检查是否存在另一个同名的进程? (如果用户没有权限这么做?)

将文件写入磁盘并在退出之前将其删除? (异常终止怎么办?)

这将是一个最佳做法?


您可以使用互斥锁。

bool firstInstance = true;
using (Mutex mutex = new Mutex(true, "MyApplicationName", out firstInstance))
{
    if (firstInstance)
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new MainForm());
    }
    else
    {
        // Another instance loaded
    }
}

您可以使用Process类的GetProcessesByName方法查找另一个具有相同名称的正在运行的进程,如果找到该进程,则退出。


通常,一个有名的互斥锁效果最好。 这是一个链接到例子:http://www.iridescence.no/post/CreatingaSingleInstanceApplicationinC.aspx

链接地址: http://www.djcxy.com/p/51145.html

上一篇: What is the best way to make a single instance application in .net?

下一篇: Start application just one time C#