Ejemplo n.º 1
0
            /// <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);
                        }
                    }
                }
            }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
 /// <summary>
 /// 事件管理器轮询。
 /// </summary>
 /// <param name="elapseSeconds">逻辑流逝时间,以秒为单位。</param>
 /// <param name="realElapseSeconds">真实流逝时间,以秒为单位。</param>
 public void Update(float elapseSeconds, float realElapseSeconds)
 {
     m_EventPool.Update(elapseSeconds, realElapseSeconds);
 }
Ejemplo n.º 6
0
 /// <summary>
 /// 事件管理器轮询。
 /// </summary>
 /// <param name="elapseSeconds">逻辑流逝时间,以秒为单位。</param>
 /// <param name="realElapseSeconds">真实流逝时间,以秒为单位。</param>
 internal override void Update(float elapseSeconds, float realElapseSeconds)
 {
     m_EventPool.Update(elapseSeconds, realElapseSeconds);
 }
Ejemplo n.º 7
0
 public override void Update(float elapseSeconds, float realElapseSeconds)
 {
     //throw new System.NotImplementedException();
     m_EventPool.Update(elapseSeconds, realElapseSeconds);
 }