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); } }
public override void FinishTask(CDataRequest pRequest) { lock (m_DBConnetionMutex) { m_vAvailableDataHandlers.Enqueue(pRequest.DataHandler); } pRequest.Finished(); }
public abstract void FinishTask(CDataRequest pRequest);
public abstract ETaskExecResult ExecuteRequest(CDataRequest pRequest);
public static CLongRunningTask Create(CDataAccessBase dataAccess, CDataRequest pRequest) { return(new CDataAccessTask(dataAccess, pRequest)); }
private CDataAccessTask(CDataAccessBase dataAccess, CDataRequest pRequest) { m_pRequest = pRequest; m_DataAccessBase = dataAccess; }