本文整理汇总了C++中ITask::Execute方法的典型用法代码示例。如果您正苦于以下问题:C++ ITask::Execute方法的具体用法?C++ ITask::Execute怎么用?C++ ITask::Execute使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ITask
的用法示例。
在下文中一共展示了ITask::Execute方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SubmitTasks
void TaskManager::SubmitTasks()
{
vector<boost::shared_ptr<ITask> > tasks;
taskFactory->FillTasks(&tasks);
vector<ITask*> unownedTasks;
MemoryUtility::RemoveOwnership(tasks, &unownedTasks);
int processCount = MpiManager::GetInstance()->GetNumberOfProcesses();
int currentRank = MpiManager::GetInstance()->GetCurrentRank();
vector<vector<ITask*> > tasksPerProcess;
loadBalancer->BalanceTasks(unownedTasks, processCount, &tasksPerProcess);
vector<ITask*>& currentTasks = tasksPerProcess[currentRank];
for (vector<ITask*>::iterator it = currentTasks.begin() ; it < currentTasks.end(); it++)
{
ITask* task = *it;
try
{
task->Execute();
}
catch (Exception& e)
{
printf(e.GetMessage().c_str());
}
catch (std::exception& e)
{
printf(e.what());
}
catch (...)
{
// TODO: log
}
}
}
示例2:
/*override*/ task* execute() {
m_pTask->Execute();
m_pTask->Release();
return NULL;
}