Files
XCEngine/docs/api/threading/task-group/set-complete-callback.md

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;
}

相关文档

详细描述

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);