将事件与异步调用配合使用

[与此页面关联的功能 Windows Media Format 11 SDK 是旧版功能。 它已被源读取器和接收器编写器取代。 源读取器和接收器编写器已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用源读取器和接收器编写器,而不是 Windows Media Format 11 SDK。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

通常,在使用异步调用的方法时,需要停止对应用程序的进一步处理,直到方法完成处理。 可以实施任何要处理这种情况的技术。 本部分介绍如何使用事件来等待调用线程中的异步调用。 此方法经常与 Windows 媒体格式 SDK 一起使用,并在一些示例应用程序中演示。

以下列表汇总了使用事件来等待异步调用。

  1. 通过调用 Platform SDK 的 CreateEvent 函数创建一个事件以用于应用程序。
  2. 为应用程序实现适当的回调时,请捕获需要等待的消息。 在所需消息的消息处理逻辑中,通过调用平台 SDK 的 SetEvent 函数发出事件信号。
  3. 在应用程序中调用异步事件后,通过调用平台 SDK 的 WaitForSingleObject 函数来等待事件发出信号。 如果你正在设计 Windows 应用程序,则应创建一个循环来为 Windows 消息检查,并在循环中包含对 WaitForSingleObject 的调用,等待时间很短。

使用回调方法