在 UE5 中,可以使用 FGraphEventArrayFTaskGraphInterface::WaitUntilTasksComplete 来等待'序列'中的所有任务执行完毕。

首先,创建一个 FGraphEventArray 对象,用于存储所有任务的事件。

然后,将每个任务的事件添加到数组中。

接下来,调用 FTaskGraphInterface::WaitUntilTasksComplete 方法,传入任务事件数组作为参数,等待所有任务执行完毕。

以下是一个示例代码:

// 创建一个 FGraphEventArray 对象
FGraphEventArray TaskEvents;

// 添加任务事件到数组中
for (int32 i = 0; i < NumTasks; i++)
{
    FGraphEventRef TaskEvent = MyTaskGraph::QueueTask([i]()
    {
        // 执行任务代码
    });

    TaskEvents.Add(TaskEvent);
}

// 等待所有任务执行完毕
FTaskGraphInterface::Get().WaitUntilTasksComplete(TaskEvents);

在上面的示例中,NumTasks 是任务的数量,MyTaskGraph::QueueTask 是一个自定义的任务队列方法,用于将任务添加到任务图中。

通过将每个任务的事件添加到 TaskEvents 数组中,然后调用 WaitUntilTasksComplete 方法,可以等待所有任务执行完毕。

请注意,WaitUntilTasksComplete 方法是阻塞的,直到所有任务完成。因此,建议在主线程之外的线程中使用此方法,以避免阻塞主线程的执行。


原文地址: https://www.cveoy.top/t/topic/pha9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录