Поделиться через


Асинхронные и синхронные служба хранилища

Асинхронные моникеры также могут возвращать объект асинхронной служба хранилища в уведомлении IBindStatusCallback::OnDataAvailable. Этот объект хранилища может разрешить доступ к некоторым сохраняемым данным объекта во время выполнения привязки. Клиент может выбрать два режима для хранилища: блокировку и неблокирование.

В режиме блокировки, совместимом с текущими реализациями объектов хранилища, если данные недоступны, вызов блокируется до поступления данных. В режиме неблокировки, а не блокируя вызов, объект хранилища возвращает новую ошибку E_PENDING, когда данные недоступны. Клиент, осведомленный об асинхронной привязке и хранении, заметит эту ошибку и ожидает дальнейших уведомлений (OnDataAvailable), чтобы повторить операцию. Клиент может выбрать между синхронным (блокирующим) и асинхронным (неблокирующим) хранилищем, выбрав, следует ли задать флаг BINDF_ASYNCSTORAGE в значении grfBINDF, возвращенном В IBindStatusCallback::GetBindInfo.

Асинхронные моникеры