private static void RoomThread() { long balance = 0L; ProxyRoomMgr.m_nextClearTick = TickHelper.GetTickCount(); ProxyRoomMgr.m_nextPickTick = TickHelper.GetTickCount(); while (ProxyRoomMgr.m_running) { long start = TickHelper.GetTickCount(); try { ProxyRoomMgr.ExecuteActions(); if (ProxyRoomMgr.m_nextPickTick <= start) { ProxyRoomMgr.m_nextPickTick += (long)ProxyRoomMgr.PICK_UP_INTERVAL; ProxyRoomMgr.PickUpRooms(start); } if (ProxyRoomMgr.m_nextClearTick <= start) { ProxyRoomMgr.m_nextClearTick += (long)ProxyRoomMgr.CLEAR_ROOM_INTERVAL; ProxyRoomMgr.ClearRooms(start); } } catch (Exception ex) { ProxyRoomMgr.log.Error("Room Mgr Thread Error:", ex); } long end = TickHelper.GetTickCount(); balance += (long)ProxyRoomMgr.THREAD_INTERVAL - (end - start); if (balance > 0L) { Thread.Sleep((int)balance); balance = 0L; } else { if (balance < -1000L) { ProxyRoomMgr.log.WarnFormat("Room Mgr is delay {0} ms!", balance); balance += 1000L; } } if (ProxyRoomMgr.DELAY_TIME > 0) { ProxyRoomMgr.log.ErrorFormat("Delay for {0} ms!", ProxyRoomMgr.DELAY_TIME); Thread.Sleep(ProxyRoomMgr.DELAY_TIME); } } }
private static void RoomThread() { long num = 0L; ProxyRoomMgr.m_nextClearTick = TickHelper.GetTickCount(); ProxyRoomMgr.m_nextPickTick = TickHelper.GetTickCount(); while (ProxyRoomMgr.m_running) { long tickCount = TickHelper.GetTickCount(); try { ProxyRoomMgr.ExecuteActions(); if (ProxyRoomMgr.m_nextPickTick <= tickCount) { ProxyRoomMgr.m_nextPickTick += (long)ProxyRoomMgr.PICK_UP_INTERVAL; ProxyRoomMgr.PickUpRooms(tickCount); } if (ProxyRoomMgr.m_nextClearTick <= tickCount) { ProxyRoomMgr.m_nextClearTick += (long)ProxyRoomMgr.CLEAR_ROOM_INTERVAL; ProxyRoomMgr.ClearRooms(tickCount); } } catch (Exception exception) { ProxyRoomMgr.log.Error("Room Mgr Thread Error:", exception); } long tickCount2 = TickHelper.GetTickCount(); num += (long)ProxyRoomMgr.THREAD_INTERVAL - (tickCount2 - tickCount); if (num > 0L) { Thread.Sleep((int)num); num = 0L; } else { if (num < -1000L) { ProxyRoomMgr.log.WarnFormat("Room Mgr is delay {0} ms!", num); num += 1000L; } } } }