protected void RestoreDataHandler(CDataHandlerBase pHandler) { lock (m_DBConnetionMutex) { m_vAvailableDataHandlers.Enqueue(pHandler); } }
public override ETaskExecResult ExecuteRequest(CDataRequest pRequest) { CDataHandlerBase pHandler = null; lock (m_DBConnetionMutex) { if (m_vAvailableDataHandlers.Count == 0) { return(ETaskExecResult.eTaskExecResult_Pedding); } pHandler = m_vAvailableDataHandlers.Dequeue(); } if (pHandler == null) { return(ETaskExecResult.eTaskExecResult_Pedding); } pRequest.DataHandler = pHandler; if (pRequest.Execute()) { return(ETaskExecResult.eTaskExecResult_Ok); } else { return(ETaskExecResult.eTaskExecResult_Failed); } }
protected CDataHandlerBase GetActiveDataHandler() { CDataHandlerBase pHandler = null; while (pHandler == null) { lock (m_DBConnetionMutex) { if (m_vAvailableDataHandlers.Count > 0) { pHandler = m_vAvailableDataHandlers.Dequeue(); break; } else { System.Threading.Thread.Sleep(1); } } } return(pHandler); }