CQueue 类
[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayer、 IMFMediaEngine 和 音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
CQueue 类模板实现一个简单的静态大小队列。
公共方法 | 说明 |
---|---|
CQueue | 构造函数方法。 |
~CQueue | 析构函数方法。 |
GetQueueObject | 从队列中检索下一项。 |
PutQueueObject | 将项放入队列。 |
备注
类构造函数指定队列的大小。 使用 CQueue::P utQueueObject 将项放在队列中,使用 CQueue::GetQueueObject 方法取消项排队。 如果队列已满, PutQueueObject 方法会阻止,直到取消某个项的排队。 如果队列为空, 则 GetQueueObject 会阻止,直到项排队。 模板参数指定项的类型。 例如:
CQueue<int> number_queue;
number_queue.PutQueueObject(7);
类使用两个信号灯来控制排队操作:“获取”信号灯和“put”信号灯。 GetQueueObject 方法使用 WaitForSingleObject 函数等待“get”信号灯) (,并使用 ReleaseSemaphore 函数) 释放“put”信号量 (。 PutQueueObject 方法等待“put”信号灯并释放“get”信号灯。 类使用关键部分在多个线程之间序列化队列操作。
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|