软件采用多线程,线程进行中都可能调用通一个方法Func_Login_System,如何保证其中一个线程中的Func_Login_System方法运行完毕后,其他线程才能进入调用?

解决方案 »

  1.   

    最基本的线程同步使用lock最简单
      

  2.   

    1.双锁机制(lock)
    static public ConnectionRecordTable GetInstance()
            {
                if (m_recordTable == null)
                {
                    lock (SyncRoot)
                    {
                        if (m_recordTable == null)
                        {
                            //这里是安全的
                        }
                    }
                }
                return m_recordTable;
            }2.使用方法标签
      [MethodImpl(MethodImplOptions.Synchronized)]
       private void OpenClientModule(string ip, string sessionId, int moduleCode, int number)3.其它,信号量,互斥锁,不举例了