Partilhar via


Armazenamento assíncrono e síncrono

Os monikers assíncronos também podem retornar um objeto de armazenamento assíncrono na notificaçãoIBindStatusCallback::OnDataAvailable. Esse objeto de armazenamento pode permitir o acesso a alguns dos dados persistentes do objeto enquanto a associação ainda está em andamento. Um cliente pode escolher entre dois modos para o armazenamento: bloqueio e não bloqueio.

No modo de bloqueio, que é compatível com as implementações atuais de objetos de armazenamento, se os dados não estiverem disponíveis, a chamada será bloqueada até que os dados cheguem. No modo sem bloqueio, em vez de bloquear a chamada, o objeto de armazenamento retorna um novo erro E_PENDING quando os dados não estão disponíveis. Um cliente ciente de vinculação assíncrona e armazenamento observa esse erro e aguarda notificações adicionais (OnDataAvailable) para tentar novamente a operação. Um cliente pode escolher entre um armazenamento síncrono (bloqueio) e assíncrono (sem bloqueio) escolhendo se deseja definir o sinalizador de BINDF_ASYNCSTORAGE no valor grfBINDF retornado para IBindStatusCallback::GetBindInfo.

Monikers assíncronos