UE5 等待序列中所有任务执行完毕的方法
在 UE5 中,可以使用 FGraphEventArray 和 FTaskGraphInterface::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 著作权归作者所有。请勿转载和采集!