防止产生多个相同的过程

时间:2018-02-08 14:14:29

标签: c# .net windows mutex

我正在尝试设置一个互斥锁,以防止我的应用程序启动程序可执行文件启动几个相同的进程。我见过几个人使用类似的代码与Application.Run()而不是Process.Start(),其中一个阻止而另一个阻止。我的代码似乎做了应有的事情,但我不明白为什么。应用程序启动程序在下面的代码后不久退出,那么互斥锁是否会被丢弃?

// Prevent multiple application instances by checking our global mutex.
        using (var mutex = new Mutex(false, @"Global\" + ApplicationGuid))
        {
            if (!mutex.WaitOne(0, false))
            {
                MessageBox.Show("An instance of this application is already running.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            // Start application.
            Process.Start(applicationPath);
        }

0 个答案:

没有答案