使用Mutex限制程序只能运行一个实例(C#)

        [STAThread]
        static void Main(string[] arg)
        {
            bool initiallyOwned = true;
            bool isCreated;
            Mutex m = new Mutex(initiallyOwned, "LEDController", out isCreated);
            if (!(initiallyOwned && isCreated))
            {
                MessageBox.Show(Properties.Resources.StringMorethanOneProgramWarning);
                Application.Exit();
            }
            else
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new ControllerForm(arg));
                m.ReleaseMutex(); //重要 如果不释放,每个应用程序都会重新生成一个IntelliTrace.exe线程,达不到互斥的作用
            }
        }
posted @ 2012-04-26 17:41  子夜一梦  阅读(301)  评论(0)    收藏  举报