zoukankan      html  css  js  c++  java
  • 比较好的单例登录模式(参考网友)

     
      /// <summary>
      /// 构造函数
      /// </summary> 
      public frmMainForm()
      {
       InitializeComponent();
      }

      #region 比较优化的单例模式

      /// <summary>
      /// 比较优化的单例模式
      /// </summary>
      public static frmMainForm Instance
      {
       get { return Nested.instance; }
      }

      //初始化工作有Nested类的一个静态成员来完成,这样就实现了延迟初始化
      private class Nested
      {
       static Nested()
       {
       }

       internal static readonly frmMainForm instance = new frmMainForm();
      }

      #endregion

       try
       {
        if ((new Login()).ShowDialog() == DialogResult.OK)
        {
         bool createOne;
         
         //同步基元:确保一次只有一个线程使用该资源
         Mutex mut = new Mutex(true, "Thread_Name", out createOne);
         if (createOne)
         {
          //取得主窗口
          Application.Run(frmMainForm.Instance);

          //退出程序
          Application.Exit();

           //释放互斥体的所属权
          mut.ReleaseMutex();
         }
         else
         {
          MessageBox.Show("程序已经运行!", "系统提示");
         }
        }

    非有希望才坚持,坚持才会有希望
  • 相关阅读:
    mysql练习(增删改查)char、int使用
    mysql基于二进制安装
    Mysql架构、复制类型、复制功能介绍
    day44 前端之前端基础
    MySQL之事务、视图和索引
    MySQL的练习与pymysql模块
    MySQL之表的查询
    MySQL之表的关系和约束
    MySQL之基本数据类型
    MySQL数据库
  • 原文地址:https://www.cnblogs.com/eugenewu0808/p/Singleton.html
Copyright © 2011-2022 走看看