/// <summary> /// 入队列 /// </summary> /// <param name="task"></param> public void AddGameCmdTask(GameTCPCmdTask task) { if (null == task) { Console.WriteLine("AddGameCmdTask is Null!"); return; } lock (m_QueueMutex) { m_AddTaskQueue.Enqueue(task); } }
public GameTCPCmdTask PopGameCmdTask() { GameTCPCmdTask restTask = null; lock (m_QueueMutex) { if (m_DoingTaskQueue.Count > 0) { restTask = m_DoingTaskQueue.Dequeue(); return(restTask); } if (m_AddTaskQueue.Count > 0) { Queue <GameTCPCmdTask> tmpQueue = m_AddTaskQueue; m_AddTaskQueue = m_DoingTaskQueue; m_DoingTaskQueue = tmpQueue; } } return(restTask); }