保持应用程序只开一个窗体

2017-11-07  本文已影响0人  向着远方奔跑

可以使用互斥量(System.Threading.Mutex)

同步基元,它只向一个线程授予对共享资源的独占访问权。在程序启动时候,请求一个互斥体,如果能获取对指定互斥的访问权,就只运行一个实例。

在应用程序的main函数方法内,替换如下代码:

bool createNew;
using (System.Threading.Mutex mutex = new System.Threading.Mutex(true, Application.ProductName, out createNew))
            {
                if (createNew)
                {
                    if (form.ShowDialog() == DialogResult.OK)
                    {
                        form.Dispose();
                        SplashScreenHelper.Application.Run(new string[] { "" });
                    }
                }
                else
                {
                    MessageBox.Show("应用程序已经在运行中...");
                    System.Threading.Thread.Sleep(1000);
                    System.Environment.Exit(1);
                }
            }
上一篇 下一篇

猜你喜欢

热点阅读