1.6 KiB
1.6 KiB
TaskGroup::SetCompleteCallback
void SetCompleteCallback(Callback&& callback);
设置任务组完成时的回调函数。当所有任务都执行完成后(包括被取消的任务),该回调将被调用。
参数:
callback- 可调用对象,在所有任务完成后执行
返回: 无
线程安全: ✅ 线程安全
示例:
#include "XCEngine/Threading/TaskGroup.h"
#include "XCEngine/Threading/Task.h"
#include <iostream>
using namespace XCEngine::Threading;
int main() {
TaskGroup group;
group.SetCompleteCallback([]() {
std::cout << "All tasks have been completed!\n";
});
for (int i = 0; i < 3; ++i) {
group.AddTask([i]() {
std::cout << "Task " << i << " executing\n";
});
}
group.Wait();
std::cout << "Back in main after Wait()\n";
return 0;
}
相关文档
- TaskGroup 总览 - 返回类总览
详细描述
SetCompleteCallback 方法用于设置当任务组中所有任务都完成时调用的回调函数。回调在最后一个任务完成时触发。
参数
| 参数 | 类型 | 描述 |
|---|---|---|
callback |
Callback&& |
回调函数,类型为 std::function<void()> |
返回值
无
示例
TaskGroup* group = TaskSystem::Get().CreateTaskGroup();
group->SetCompleteCallback([]() {
printf("All tasks in group have completed!\n");
});
for (int i = 0; i < 10; ++i) {
group->AddTask([i]() {
printf("Task %d completed\n", i);
});
}
// 等待所有任务完成,回调会被触发
group->Wait();
TaskSystem::Get().DestroyTaskGroup(group);