• C# winform 一次只能允许一个应用(使用mutex)


    在很多应用程序开发过程中,需要只允许一个程序实例,即使是通过虚拟桌面方式连接过来的,也是只允许一个人运行。下面是实现该功能的代码,注意mutexName 为系统名称,Global为全局,表示即使通过通过虚拟桌面连接过来,也只是允许运行一次。

    using System;
    using System.Threading;
    using System.Windows.Forms;
    
    namespace WinformOneAppOnce
    {
        static class Program
        {
    		/// <summary>
    		/// mutex互斥锁
    		/// </summary>
    		private static Mutex mutex = null;
            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
    			GlobalMutex();
    			Application.Run(new Form1());
            }
    
    		private static void GlobalMutex()
    		{
    			bool createdNew = false;
    			////系统名称,Global为全局,表示即使通过通过虚拟桌面连接过来,也只是允许运行一次
    			string name = "WinformOneAppOnce1";
    			try
    			{
    				mutex = new Mutex(initiallyOwned: false, name, out createdNew);
    			}
    			catch (Exception ex)
    			{
    				Console.Write(ex.Message);
    				Thread.Sleep(1000);
    				Environment.Exit(1);
    			}
    			if (createdNew)
    			{
    				Console.WriteLine("程序已启动");
    				return;
    			}
    			MessageBox.Show("另一个窗口已在运行,不能重复运行。");
    			Thread.Sleep(1000);
    			Environment.Exit(1);
    		}
    
    	}
    }
    
    
  • 相关阅读:
    Dash panel 里面添加启动项
    Ubuntu安装chrome
    多核CPU服务器 tomcat配置
    Iptux 信使 自动缩小问题 ubuntu12.04
    Html5 上传文件
    ubuntu 12.04 字体设置
    Ubuntu12.04 Eclipse 背景颜色 修改
    一些需要禁用的PHP危险函数
    Oracle 修改带数据的字段类型
    oracle 中同一个字段1 ,字段追加,字段部分数据删除
  • 原文地址:https://www.cnblogs.com/AlexanderZhao/p/12878847.html
Copyright © 2020-2023  润新知