回调同步

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

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

URL 名字对象