Esempio n. 1
0
        public void Add(IServer server)
        {
            if (mServerMapper == null)
            {
                return;
            }
            if (!IsInited)
            {
                IsInited = true;
                OnInit?.Invoke();
                OnInit = default;
            }
            string serverName = (server != null) ? server.ServerName : string.Empty;

            if (!string.IsNullOrEmpty(serverName) && !mServerMapper.IsContainsKey(serverName))
            {
                SetAndInitServer(ref server);
                SetServerPriority(server);
                mNewServers.Add(server);

                if (!mCanCheckServers)
                {
                    mCanCheckServers = true;
                    ShipDockApp.CallLater(CheckServerList);
                }
                mServerPriorAttrs = null;
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 检测需要初始化的新容器
        /// </summary>
        private void CheckServerList(int time)
        {
            Utils.CloneFrom(ref mServersWillCheck, ref mNewServers, true);

            int max = mServersWillCheck.Count;

            if (max > 0)
            {
                IServer server = null;
                for (int i = 0; i < max; i++)
                {
                    server = mServersWillCheck[i];
                    if (server != null)
                    {
                        mServersWillSort.Add(server);
                    }
                }
            }
            mServersWillCheck.Clear();
            mCanCheckServers = false;

            ShipDockApp.CallLater(SortServersByPriority);
        }