/// <summary>
        /// 构造
        /// </summary>
        public TimerManager(PlayerContextManager playerCtxManager)
        {
            m_state = 0;
            m_playerCtxTimersCancelTokenSource = new CancellationTokenSource();
            m_loopTimers      = new ConcurrentDictionary <Int64, TimerNode>();
            m_playerCtxTimers = new ConcurrentDictionary <Int64, PlayerTimerNode>();

            // 保存ctx manger
            m_playerCtxManager = playerCtxManager;
        }
Beispiel #2
0
        /// <summary>
        /// 初始化底层的玩家上下文对象管理器。
        /// </summary>
        /// <param name="playerContextType">业务层最终玩家上下文对象类型,必须有无参数的构造函数。</param>
        /// <param name="playerContextMax"></param>
        /// <returns>初始化是否成功。</returns>
        protected virtual bool InitializePlayerContextManager(Type playerContextType, int playerContextMax = int.MaxValue)
        {
            try
            {
                PlayerCtxManager = new PlayerContextManager();
                PlayerCtxManager.Initialize(playerContextType, m_serverId, playerContextMax);
            }
            catch (Exception e)
            {
                Log.Error($"ServerBase::InitializePlayerContextManager{e}");
                return(false);
            }

            return(true);
        }