回调同步

用于最常见协议的异步 WinInet API () 使回调机制和调用应用程序保持同步,作为客户端练习。 这是有意的,因为它允许最大的灵活性。 默认协议和 URL 名字对象实现执行此同步,并确保单线程和单元线程应用程序永远不必处理自由线程样式争用。 也就是说,客户端的 IEnumFORMATETCIBindStatusCallback 接口仅在正确的线程上调用。 只要调用 IMoniker::BindToStorage 和 IMoniker::BindToObject 的每个线程都有消息队列,此功能对 URL mMoniker 的用户是透明的。

异步名字对象规范需要对下载的优先级和管理进行更精确的控制,而不是 WinSock 或 WinInet 允许的。 因此,URL 名字对象管理任何给定调用方线程的所有下载,使用 (作为其同步的一部分,) 基于 IBinding 规范的优先级方案。

URL 名字对象