回调同步
异步 WinInet API(用于最常见的协议)使回调机制和调用应用程序保持同步,作为客户端的练习。 这是有意的,因为它允许最大的灵活性。 默认协议和 URL 名字对象实现执行此同步,并保证单线程和单元线程应用程序永远不必处理自由线程式争用。 也就是说,客户端的 IEnumFORMATETC 和 IBindStatusCallback 接口仅在正确的线程上调用。 只要调用 IMoniker::BindToStorage 且 IMoniker::BindToObject 的消息队列,URL mMoniker 的用户就对此功能是透明的。
与 WinSock 或 WinInet 所允许相比,异步名字对象规范要求更准确地控制下载的优先级和管理。 因此,URL 名字对象管理任何给定调用方线程的所有下载,使用(作为同步的一部分)基于 IBinding 规范的优先级方案。
相关主题