异步和同步存储
异步名字对象也可以在 IBindStatusCallback::OnDataAvailable 通知中返回 Asynchronous Storage 对象。 当绑定仍在进行时,此存储对象可允许访问对象的某些持久性数据。 客户端可以选择两种存储模式之一:阻止和非阻止。
在阻止模式下(与当前存储对象的实现兼容),如果数据不可用,调用就会阻止直到数据到达。 在非阻塞模式下,当数据不可用时,存储对象会返回一个新错误 E_PENDING,而不是阻止调用。 了解异步绑定和存储的客户端会注意到这一错误,并等待进一步的通知 (OnDataAvailable) 以重试操作。 通过选择是否在 grfBINDF 返回 IBindStatusCallback::GetBindInfo 的值中设置 BINDF_ASYNCSTORAGE 标志,客户端可以在同步(阻止)和异步(非阻止)存储之间做出选择。
相关主题