c# - c#中应用程序的单个实例

标签 c# instance

我知道这个问题可能有点傻,但我是 c# 的新手,也是一般编码的新手。 我最近做了一个应用程序,我想限制它一次只能运行一个实例,这样用户就不能多次启动它。 我在 stackoverflow 上找到了 michalczerwinski 的这个答案:

[STAThread]
static void Main()
{
    bool result;
    var mutex = new System.Threading.Mutex(true, "UniqueAppId", out result);

    if (!result)
    {
        MessageBox.Show("Another instance is already running.");
        return;
    }

    Application.Run(new Form1());

    GC.KeepAlive(mutex);                // mutex shouldn't be released - important line
}

谁能告诉我应该在哪里添加这个?我已经尝试将它添加到 Form1.cs 中的任何地方,但它不起作用。

最佳答案

static void Main()

是主函数的名称。您应该将此添加到“Program.cs”文件(标准名称)到此特定函数(在函数中的其他所有内容之前)

释放资源是一种很好的做法。因此,最好在函数末尾添加 mutex.Dispose();using (mutex) { } (不是两者,只是这些选项之一) .

关于c# - c#中应用程序的单个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34617940/

相关文章:

c# - C# 中的属性是否使用反射?

c# - 如何阅读所有 Feed 项目?

.net - 什么是 VB.NET 等同于这种创建实例的方式?

c# - 如何使用 ASP.NET Core 依赖注入(inject)来应用装饰器

c# - 将 comboBox 设置为自定义显示格式

c# - 为 Windows XP x86 编译程序

java - 我如何知道我正在使用抽象类的方法中的哪个实例?

static - IOC - 具有静态辅助方法的 util 类是否应该与 IOC 连接?

php - 如何销毁 Codeigniter 库实例

django - django信号,如何使用“实例”