本文整理汇总了C++中Task::call方法的典型用法代码示例。如果您正苦于以下问题:C++ Task::call方法的具体用法?C++ Task::call怎么用?C++ Task::call使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Task
的用法示例。
在下文中一共展示了Task::call方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(void)
{
int MemSize;
cout<<"请输入内存块大小"<<endl;
cin>>MemSize;
Task::setSize(MemSize); //初始化内存大小
Task::showMem();
int choose,t;
while(cout<<"------------------------------\n"
<<"\t1:申请作业内存\n"
<<"\t2:回收作业\n"
<<"\t0:退出\n请输入: "<<endl,
cin>>choose)
{ switch(choose)
{ case 1:
{ cout<<"输入作业大小:";
cin>>t;
Task* task = new Task(t);
task->call(); //申请新作业内存
};break;
case 2:
{ cout<<"输入回收作业ID:";
cin>>t;
Task::callback(t); //释放作业
};break;
case 0:return 0;
default:break;
}/*endof switch*/
Task::showMem();
}/*endof while*/
return 0;
}
示例2: threadFunction
void Scheduler::threadFunction()
{
while (m_running) {
int sleepTime = 100;
m_tasksMutex.lock();
steady_clock::time_point now = steady_clock::now();
while(m_tasks.size() > 0) {
steady_clock::time_point resumeTime = m_tasks.top().getResumeTime();
if (resumeTime > now) {
sleepTime = (int32_t)duration_cast<milliseconds>(resumeTime - now).count();
break;
}
Task task = m_tasks.top();
m_tasks.pop();
if (m_removeIds.find(task.getId()) == m_removeIds.end()) {
task.call();
if (task.isPeriodic()) {
task.updateTime(now);
m_tasks.push(task);
}
}
else {
m_removeIds.erase(task.getId());
}
}
m_tasksMutex.unlock();
Sleep(sleepTime);
}
}