• c# WinFo判断当前程序是否已经启动或存在的几种方式


    第一种方式:利用Mutex互斥量实现同时只有一个进程实例在运行

      

     static class Program
        {
            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            [STAThread]
     static void Main()
            {
                
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                //控制当前程序已经打开(即启动)
                //方式1:利用Mutex互斥量实现同时只有一个进程实例在运行
                //互斥锁(Mutex)
                //互斥锁是一个互斥的同步对象,意味着同一时间有且仅有一个线程可以获取它。 
                //互斥锁可适用于一个共享资源每次只能被一个线程访问的情况
                bool flag = false;
                System.Threading.Mutex hMutex = new System.Threading.Mutex(true, Application.ProductName, out flag);
                bool b = hMutex.WaitOne(0, false);
                /*上面的参数说明:
                 第一个参数【initiallyOwned】:true:指示调用线程是否应具有互斥体的初始所有权 (老实说没理解透)
                 第二个参数【name】:程序唯一name,(当前操作系统中)判定重复运行的标志 
                 第三个参数【createdNew】:返回值,如果检测到已经启动则返回(false)。 
                 */
                if (flag)
                {
                    //没有启动相同的程序
                    Application.Run(new MainForm());
                }
                else
                {
                    MessageBox.Show("当前程序已在运行,请勿重复运行。");
                    Environment.Exit(1);//退出程序  
                } 
            }
    }
    

      

  • 相关阅读:
    打包成exe可执行文件的方法
    Html 重要单词归纳
    python基础---递归函数 知识点自查填空题
    python基础---内置函数 和 匿名函数 知识点自查填空题
    python基础---递归函数真题解析
    python 日记 day4。
    python 日记 day5 字典
    python 日记 day3
    python 日记 day4
    python 日记 day1
  • 原文地址:https://www.cnblogs.com/LoveTX/p/8684385.html
Copyright © 2020-2023  润新知