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

jua*_*uan 3 .net c# design-patterns

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

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

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

这样做的最佳做法是什么?

Ale*_*ide 6

您可以使用互斥锁.

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
    }
}
Run Code Online (Sandbox Code Playgroud)