Archiviazione asincrona e sincrona
I moniker asincroni possono anche restituire un oggetto Archiviazione asincrono nella notifica IBindStatusCallback::OnDataAvailable. Questo oggetto di archiviazione può consentire l'accesso ad alcuni dati permanenti dell'oggetto mentre l'associazione è ancora in corso. Un client può scegliere tra due modalità per l'archiviazione: blocco e non blocco.
In modalità di blocco, compatibile con le implementazioni correnti degli oggetti di archiviazione, se i dati non sono disponibili, le chiamate si bloccano fino all'arrivo dei dati. In modalità non bloccante anziché bloccare la chiamata, l'oggetto di archiviazione restituisce un nuovo errore E_PENDING quando i dati non sono disponibili. Un client che riconosce l'associazione asincrona e l'archiviazione segnala questo errore e attende ulteriori notifiche (OnDataAvailable) per ritentare l'operazione. Un client può scegliere tra una risorsa di archiviazione sincrona (bloccante) e asincrona (non bloccante) scegliendo se impostare il flag BINDF_ASYNCSTORAGE nel valore grfBINDF restituito a IBindStatusCallback::GetBindInfo.
Argomenti correlati