Compartilhar via


Armazenamento assíncrono e síncrono

Os monikers assíncronos também podem retornar um objeto de Armazenamento Assíncrono na notificação IBindStatusCallback::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 de não 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 da associação assíncrona e do armazenamento observa esse erro e aguarda novas notificações (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 BINDF_ASYNCSTORAGE no valor grfBINDF retornado para IBindStatusCallback::GetBindInfo.

monikers assíncronos