/// <summary> /// 网络频道轮询。 /// </summary> /// <param name="elapseSeconds">逻辑流逝时间,以秒为单位。</param> /// <param name="realElapseSeconds">真实流逝时间,以秒为单位。</param> public void Update(float elapseSeconds, float realElapseSeconds) { if (m_Socket == null || !m_Active) { return; } ProcessSend(); m_ReceivePacketPool.Update(elapseSeconds, realElapseSeconds); if (m_HeartBeatInterval > 0f) { bool sendHeartBeat = false; int missHeartBeatCount = 0; lock (m_HeartBeatState) { m_HeartBeatState.HeartBeatElapseSeconds += realElapseSeconds; if (m_HeartBeatState.HeartBeatElapseSeconds >= m_HeartBeatInterval) { sendHeartBeat = true; missHeartBeatCount = m_HeartBeatState.MissHeartBeatCount; m_HeartBeatState.HeartBeatElapseSeconds = 0f; m_HeartBeatState.MissHeartBeatCount++; } } if (sendHeartBeat && m_NetworkChannelHelper.SendHeartBeat()) { if (missHeartBeatCount > 0 && NetworkChannelMissHeartBeat != null) { NetworkChannelMissHeartBeat(this, missHeartBeatCount); } } } }
/// <summary> /// 网络管理器轮询。 /// </summary> /// <param name="elapseSeconds">逻辑流逝时间,以秒为单位。</param> /// <param name="realElapseSeconds">真实流逝时间,以秒为单位。</param> internal override void Update(float elapseSeconds, float realElapseSeconds) { foreach (KeyValuePair <string, NetworkChannel> networkChannel in (Dictionary <string, NetworkChannel>)m_NetworkChannels) { networkChannel.Value.Update(elapseSeconds, realElapseSeconds); } m_EventPool.Update(elapseSeconds, realElapseSeconds); }
/// <summary> /// 网络管理器轮询。 /// </summary> /// <param name="elapseSeconds">逻辑流逝时间,以秒为单位。</param> /// <param name="realElapseSeconds">真实流逝时间,以秒为单位。</param> internal override void Update(float elapseSeconds, float realElapseSeconds) { foreach (NetworkChannel networkChannel in m_NetworkChannels.Values) { networkChannel.Update(elapseSeconds, realElapseSeconds); } m_EventPool.Update(elapseSeconds, realElapseSeconds); }
public void UpdateTest() { sum = 0; EventPool <int> eventPool = new EventPool <int>(); var t = eventPool.CreateChannel("a"); t.Events += Ac; for (int i = 0; i < 100; i++) { int k = i; Task.Run(() => t.Fire(this, k)); } Thread.Sleep(100); eventPool.Update(); Assert.AreEqual(5050, sum); }
/// <summary> /// 事件管理器轮询。 /// </summary> /// <param name="elapseSeconds">逻辑流逝时间,以秒为单位。</param> /// <param name="realElapseSeconds">真实流逝时间,以秒为单位。</param> public void Update(float elapseSeconds, float realElapseSeconds) { m_EventPool.Update(elapseSeconds, realElapseSeconds); }
/// <summary> /// 事件管理器轮询。 /// </summary> /// <param name="elapseSeconds">逻辑流逝时间,以秒为单位。</param> /// <param name="realElapseSeconds">真实流逝时间,以秒为单位。</param> internal override void Update(float elapseSeconds, float realElapseSeconds) { m_EventPool.Update(elapseSeconds, realElapseSeconds); }
public override void Update(float elapseSeconds, float realElapseSeconds) { //throw new System.NotImplementedException(); m_EventPool.Update(elapseSeconds, realElapseSeconds); }