1.4 KiB
1.4 KiB
TaskGroup::AddTask
uint64_t AddTask(std::unique_ptr<ITask> task);
uint64_t AddTask(Callback&& func, TaskPriority priority = TaskPriority::Normal);
将任务添加到任务组。支持两种添加方式:传入 ITask 对象或传入回调函数。
参数:
task- 唯一指针管理的 ITask 对象func- 要执行的回调函数priority- 任务优先级,默认为TaskPriority::Normal
返回: 返回分配的任务 ID,可用于设置依赖关系
线程安全: ✅ 线程安全
复杂度: O(1)
示例:
#include "XCEngine/Threading/TaskGroup.h"
#include "XCEngine/Threading/Task.h"
#include <iostream>
#include <memory>
using namespace XCEngine::Threading;
class MyTask : public ITask {
public:
explicit MyTask(const std::string& name) : m_name(name) {}
void Execute() override {
std::cout << "Executing: " << m_name << "\n";
}
private:
std::string m_name;
};
int main() {
TaskGroup group;
auto task = std::make_unique<MyTask>("DataLoading");
uint64_t taskId = group.AddTask(std::move(task));
uint64_t callbackId = group.AddTask([]() {
std::cout << "Lambda task executing\n";
}, TaskPriority::High);
group.AddDependency(callbackId, taskId);
group.Wait();
return 0;
}
相关文档
- TaskGroup 总览 - 返回类总览