# D3D12CommandQueue::WaitForIdle ```cpp void WaitForIdle() override; ``` 阻塞当前线程,直到命令队列中所有已提交的命令全部执行完成。该方法会强制 GPU 等待所有待处理命令完成后才返回。 **返回:** 无 **复杂度:** O(n),其中 n 为待处理命令的数量 **使用场景:** - 帧同步:确保一帧的所有渲染命令完成后再进行下一步操作 - 资源管理:确保 GPU 不再使用某个资源后再释放 - 调试:等待特定命令完成以便进行 GPU 调试 **注意:** 这是一个阻塞调用,会暂停 CPU 线程直到 GPU 完成所有命令。频繁调用可能影响性能。 ## 示例 ```cpp // 提交渲染命令 commandQueue.ExecuteCommandLists(count, lists); // 等待所有命令完成 commandQueue.WaitForIdle(); // 此时可以安全地释放命令列表使用的资源 ``` ## 相关文档 - [D3D12CommandQueue 总览](command-queue.md) - 返回类总览 - [Signal](signal.md) - 向栅栏发送信号 - [Wait](signal.md) - 等待栅栏达到指定值