CBaseRenderer.SourceThreadCanWait 方法

该方法 SourceThreadCanWait 保存或释放流式处理线程。

语法

virtual HRESULT SourceThreadCanWait(
   BOOL bCanWait
);

parameters

bCanWait

指示是否保存流线程的布尔值。 如果 为 TRUE,则当筛选器等待呈现下一个样本时,流式处理线程会被阻止。 如果 为 FALSE,则会释放流式处理线程。

返回值

返回S_OK。

注解

SourceThreadCanWait调用值为 FALSE 的方法会强制筛选器从阻止的 IMemInputPin::Receive 调用返回。 筛选器运行时,它会阻止 接收 调用,直到当前示例的呈现时间。 当筛选器暂停时,它会无限期地阻止 接收 调用。 此行为规范流中的数据流。 但是,当筛选器停止或刷新时,它不应阻止。

阻止由 CBaseRenderer::WaitForRenderTime 方法控制,该方法等待两个事件: CBaseRenderer::m_RenderEventCBaseRenderer::m_ThreadSignal。 演示时间到达时, 会发出m_RenderEvent 事件信号。 使用值 FALSE 调用时SourceThreadCanWait,会发出m_ThreadSignal事件信号。 使用值 TRUE 调用SourceThreadCanWait会重置事件。

CBaseRenderer::StopCBaseRenderer::BeginFlush 方法调用SourceThreadCanWaitFALSE, (释放流线程) 。 CBaseRenderer::P auseCBaseRenderer::RunCBaseRenderer::EndFlush 方法使用值为 TRUE 调用SourceThreadCanWait

要求

要求 Value
标头
Renbase.h (包括 Streams.h)

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

另请参阅

CBaseRenderer 类