Files
XCEngine/docs/api/rhi/d3d12/command-queue/wait.md

38 lines
948 B
Markdown
Raw Normal View History

2026-03-20 02:35:45 +08:00
# D3D12CommandQueue::Wait
```cpp
void Wait(RHIFence* fence, uint64_t value) override;
```
阻塞命令队列,直到指定栅栏的完成值达到指定值。该方法用于 GPU 内部的同步操作。
**参数:**
- `fence` - 目标栅栏指针,不能为 `nullptr`
- `value` - 等待的信号值
**返回:** 无
**复杂度:** O(1)
**使用场景:**
- 等待另一个命令队列的操作完成
- 实现 GPU 流水线各阶段之间的同步
- 多 GPU 节点间的同步
**注意:** 如果栅栏的当前值已经大于或等于指定值,则此方法立即返回。
## 示例
```cpp
D3D12Fence* fence; // 已发送信号的栅栏
// 等待 fence 的值达到 1
commandQueue.Wait(fence, 1);
```
## 相关文档
- [D3D12CommandQueue 总览](command-queue.md) - 返回类总览
- [Signal](signal.md) - 向栅栏发送信号
- [Wait(ID3D12Fence*)](wait-native.md) - Native D3D12Fence 版本
- [D3D12Fence](../fence/fence.md)