public void Stop() { m_doWork = false; Dictionary <EnqueueType, List <DBQueueObject> > messageDict = new Dictionary <EnqueueType, List <DBQueueObject> >(); lock (m_dbQueueLock) { int queueCount = m_dbQueue.Count; for (int j = 0; j < queueCount; j++) { for (int i = 0; i < m_dbQueue.Count; i++) { DBQueueObject message = m_dbQueue.Dequeue(); if (!messageDict.ContainsKey(message.ObjectType)) { messageDict.Add(message.ObjectType, new List <DBQueueObject>()); } messageDict[message.ObjectType].Add(message); } } } WriteLog(messageDict); }
private void DBManagerQueueWork() { while (m_doWork) { Dictionary <EnqueueType, List <DBQueueObject> > messageDict = new Dictionary <EnqueueType, List <DBQueueObject> >(); lock (m_dbQueueLock) { while (m_dbQueue.Count > 0 && messageDict.Count < m_maxPoolMsg) { DBQueueObject message = m_dbQueue.Dequeue(); if (!messageDict.ContainsKey(message.ObjectType)) { messageDict.Add(message.ObjectType, new List <DBQueueObject>()); } messageDict[message.ObjectType].Add(message); } } if (messageDict.Count > 0) { WriteLog(messageDict); } Thread.Sleep(m_sleepPool); } }
public void Enqueue(DBQueueObject dbQueueObject) { lock (m_dbQueueLock) m_dbQueue.Enqueue(dbQueueObject); }