/// <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; }
/// <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); }