Ejemplo n.º 1
0
        private void RWTick(object sender, EventArgs e)
        {
            bool willCloseSelf, willCloseRecv;
            int  onlineUsersCount;

            connection.Exec(RWTimer.Interval, out willCloseSelf, out willCloseRecv, out onlineUsersCount);

            if (willCloseSelf)
            {
                RWTimer.Stop();
                CloseConnectionInTick(connection.HasConnectionToLost());
            }
            else if (willCloseRecv)
            {
                CloseConnectionInTick(connection.HasConnectionToLost());
            }
            else if (onlineUsersCount > 0)
            {
                int newInterval = Math.Max(250 / onlineUsersCount, 10);
                RWTimer.Interval = newInterval;
            }
            else
            {
                RWTimer.Interval = 50;
            }
        }