当前位置: 首页>>代码示例>>C++>>正文


C++ ITask::Run方法代码示例

本文整理汇总了C++中ITask::Run方法的典型用法代码示例。如果您正苦于以下问题:C++ ITask::Run方法的具体用法?C++ ITask::Run怎么用?C++ ITask::Run使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ITask的用法示例。


在下文中一共展示了ITask::Run方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: Run

unsigned Thread::Run()
{
    DebugLog << "Thread::Run" << std::endl;
    while (true)
    {
        if (mpThreadPool == NULL)
        {
            DebugLog << "mpThreadPool == NULL" << std::endl;
        }
        ITask* pTask = mpThreadPool->GetTask();
        if (pTask != NULL)
        {
            DebugLog << "Get a valid task" << std::endl;
            if (pTask->GetType() == TP_Exit)
            {
                pTask->OnComplete();
                mpThreadPool->FinishATask();
                break;
            }
            else if (pTask->GetType() == TP_Normal)
            {
                pTask->Run();
                pTask->OnComplete();
                mpThreadPool->FinishATask();
            }
        }
        else
        {
            DebugLog << "Get an invalid task" << std::endl;
        }
    }
    return 0;
}
开发者ID:ming81,项目名称:magic3d,代码行数:33,代码来源:ThreadPool.cpp

示例2: Run

	void Worker::Run() {
		while (!_Shutdown) {
			ITask* currentJob = _Q->FetchTask();
			if (currentJob != NULL) {
				currentJob->Run();
				if (currentJob->ToBeDisposedByWorker()) {
					delete currentJob;
				}
			}
		}
	}
开发者ID:RGafiyatullin,项目名称:kyte,代码行数:11,代码来源:Worker.cpp

示例3: run

 void QueueRunnable::run()
 {
     while (queue->IsStarted()) {
         queue->LockQueue();
         ITask* task = queue->NextTask();
         if (task == NULL) {
             queue->UnlockQueue();
             continue;
         }
         currentTask = task;
         queue->UnlockQueue();
         task->Run();
         queue->LockQueue();
         currentTask = NULL;
         queue->FinishTask(task);
         queue->NotifyQueue();
         queue->UnlockQueue();
     }
 }
开发者ID:melode11,项目名称:TaskQueue,代码行数:19,代码来源:ThreadTaskQueue.cpp

示例4: PopAndExecuteTask

    void ThreadPoolImpl::PopAndExecuteTask()
    {
        ITask* currentTask = nullptr;

        mutex_.Lock();

        if(!tasks_.empty())
        {
            currentTask = tasks_.front();
            tasks_.pop();

        }

        mutex_.UnLock();

        if (currentTask)
        {
            currentTask->Run();
            delete currentTask;
        }
    }
开发者ID:crezul,项目名称:my-self-education-sync-lib,代码行数:21,代码来源:ThreadPoolImpl.cpp

示例5: Activate

//---------------------------------------------------------------------------
void TTaskScheduler::Execute(wstring taskName){
    ITask *pITask = Activate(taskName);

    if(pITask == NULL){
        return;
    }



    ///////////////////////////////////////////////////////////////////
    // Call ITask::Run to start execution of "Test Task".
    ///////////////////////////////////////////////////////////////////

    HRESULT hr = pITask->Run();
    if (FAILED(hr)){
        sprintf(lastError, "Failed calling ITask::Run, error = 0x%x\n", hr);
        return;
    }


    pITask->Release();

}
开发者ID:AndyHuang7601,项目名称:EpicGames-UnrealEngine,代码行数:24,代码来源:TTaskScheduler.cpp

示例6: RunTask

    void NObjCommonBfTaskProfile::RunTask( DRI::IAsyncCmd *pAsyncCmd, ITask& task, const Domain::ObjectName& taskName, NObjBroadcastReceiver* postValidator)
    {        
        if (pAsyncCmd)
        {
            AsyncBegin(pAsyncCmd, boost::bind(&NObjCommonBfTaskProfile::AbortAsync, this));       
        }
        else
        {
            // это не первая задача
            ESS_ASSERT(AsyncActive());
        }

        m_postValidator = postValidator;       

        m_taskLog.reset(getDomain().LogCreator()->CreateSession(taskName.Name().toStdString(), m_traceClient));
        *m_taskLog << "RunTask" << iLogW::EndRecord;

        QString msg;
        msg += "Task ";
        msg += taskName.Name();
        msg += " started...";

        Log(msg);

        try
        {
            bool runAsLastTask;
            task.Run(runAsLastTask);
            if (!runAsLastTask) m_pNetTask = &task;
            else m_pNetTask = 0;
        }
        catch(const ESS::BaseException& e)
        {
            AsyncComplete(false, e.getTextMessage().c_str());
        }
    }
开发者ID:ixc-software,项目名称:lucksi,代码行数:36,代码来源:NObjCommonBfTaskProfile.cpp


注:本文中的ITask::Run方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。