CQueue 类

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayerIMFMediaEngine音频/视频捕获 ,而不是 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”信号灯。 类使用关键部分在多个线程之间序列化队列操作。

要求

要求
标头
Wxutil.h (包括 Streams.h)

Strmbase.lib (零售版本) ;
Strmbasd.lib (调试生成)