Udostępnij przez


Magazyn asynchroniczny i synchroniczny

Asynchroniczne jednostki monikers mogą również zwrócić obiekt Asynchronous Storage w powiadomieniu IBindStatusCallback::OnDataAvailable powiadomienia. Ten obiekt magazynu może zezwalać na dostęp do niektórych trwałych danych obiektu, gdy powiązanie jest nadal w toku. Klient może wybrać między dwoma trybami magazynu: blokowaniem i blokowaniem.

W trybie blokowania, który jest zgodny z bieżącymi implementacjami obiektów magazynu, jeśli dane są niedostępne, wywołanie blokuje się do momentu odebrania danych. W trybie bezblokowania zamiast blokować wywołanie obiekt magazynu zwraca nowy błąd E_PENDING, gdy dane są niedostępne. Klient świadomy powiązania asynchronicznego i magazynu zauważa ten błąd i czeka na dalsze powiadomienia (OnDataAvailable), aby ponowić próbę wykonania operacji. Klient może wybrać między magazynem synchronicznym (blokującym) i asynchronicznym (bezblokowania), wybierając, czy ustawić flagę BINDF_ASYNCSTORAGE w grfBINDF wartość zwrócona do IBindStatusCallback::GetBindInfo.

Asynchronous Monikers