给外部可以获取任务的能力 只返回符合要求的信息

This commit is contained in:
WangQiang 2016-07-23 02:14:16 +00:00
parent 6bd8a39236
commit eee1f14e3a
2 changed files with 36 additions and 1 deletions

View File

@ -196,6 +196,38 @@ void TaskScheduler::Set(Task* tasks, uint count)
} }
} }
uint TaskScheduler::FindID(Action func)
{
if (!func) return 0;
uint id = 0;
for (int i = 0; i < _Tasks.Count(); i++)
{
auto task = (Task*)_Tasks[i];
if (task->Callback == func)
{
id = task->ID ;
break;
}
}
return id;
}
Task* TaskScheduler::FindTask(Action func)
{
if (!func) return nullptr;
Task* ret = nullptr;
for (int i = 0; i < _Tasks.Count(); i++)
{
auto task = (Task*)_Tasks[i];
if (task->Callback == func)
{
ret = task;
break;
}
}
return ret;
}
// 创建任务返回任务编号。dueTime首次调度时间ms-1表示事件型任务period调度间隔ms-1表示仅处理一次 // 创建任务返回任务编号。dueTime首次调度时间ms-1表示事件型任务period调度间隔ms-1表示仅处理一次
uint TaskScheduler::Add(Action func, void* param, int dueTime, int period, cstring name) uint TaskScheduler::Add(Action func, void* param, int dueTime, int period, cstring name)
{ {

View File

@ -77,7 +77,10 @@ public:
// 使用外部缓冲区初始化任务列表,避免频繁的堆分配 // 使用外部缓冲区初始化任务列表,避免频繁的堆分配
void Set(Task* tasks, uint count); void Set(Task* tasks, uint count);
// 查找任务 返回使用此函数的首个任务的ID
uint FindID(Action func);
// 查找任务 返回使用此函数的首个任务
Task* FindTask(Action func);
// 创建任务返回任务编号。dueTime首次调度时间ms-1表示事件型任务period调度间隔ms-1表示仅处理一次 // 创建任务返回任务编号。dueTime首次调度时间ms-1表示事件型任务period调度间隔ms-1表示仅处理一次
uint Add(Action func, void* param, int dueTime = 0, int period = 0, cstring name = nullptr); uint Add(Action func, void* param, int dueTime = 0, int period = 0, cstring name = nullptr);
template<typename T> template<typename T>