-
Notifications
You must be signed in to change notification settings - Fork 0
Task
QY Li edited this page Mar 27, 2024
·
4 revisions
任务状态枚举。
enum TaskStatus
{
READY,
RUNNING,
FINISHED
};READY 任务已经准备好,等待线程池调度执行
RUNNING 任务正在执行
FINISHED 任务已经执行完毕
任务基类。
获取任务状态。
TaskStatus GetTaskStatus() const;当前任务的状态
返回值参考返回值参考 ThreadPool::TaskStatus。
设置任务状态。
void SetTaskStatus(TaskStatus status);status 任务状态
请勿直接调用此函数,任务状态由线程池维护。当您觉得任务已经完成时,可以调用并传入 ThreadPool::TaskStatus::FINISHED 参数。
ThreadPool::TaskBase 的构造函数。
TaskBase();请勿直接调用此构造函数,任务由线程池创建。
任务类,继承自 ThreadPool::TaskBase。
获取任务执行结果。
template<class RetType>
RetType GetResult();
void GetResult();任务执行结果。当任务无返回值时,返回值为 void
std::runtime_error("Task is not running yet.") 任务还未开始执行
std::runtime_error("Task is running.") 任务正在执行
void GetResult(); 为 RetType GetResult(); 的特化版本,用于无返回值的任务。
在任务执行完毕之前调用此函数会抛出异常,推荐先调用 ThreadPool::TaskBase::GetTaskStatus 函数检查任务状态,当任务状态为 ThreadPool::TaskStatus::FINISHED 时再调用此函数。