Пример #1
0
        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);
            }
        }
Пример #2
0
 public override void FinishTask(CDataRequest pRequest)
 {
     lock (m_DBConnetionMutex)
     {
         m_vAvailableDataHandlers.Enqueue(pRequest.DataHandler);
     }
     pRequest.Finished();
 }
Пример #3
0
 public abstract void FinishTask(CDataRequest pRequest);
Пример #4
0
 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;
 }