다음을 통해 공유


비동기 및 동기 바인딩

클라이언트는 IsAsyncMoniker 함수를 호출하여 모니커가 비동기인지 확인할 수 있습니다. 클라이언트가 IMoniker::BindToStorage 또는 IMoniker::BindToObject대한 후속 호출에서 개체 포인터 또는 스토리지 포인터를 반환하지 않고 BINDF_ASYNCHRONOUS 플래그를 반환하는 경우 모니커는 개체 포인터 대신 MK_S_ASYNCHRONOUS 반환하고 스토리지 포인터 대신 NULL . 이에 대한 응답으로 클라이언트는 IBindStatusCallback::OnDataAvailableIBindStatusCallBack::OnObjectAvailable구현하는 동안 요청된 개체 또는 스토리지를 받을 때까지 기다려야 합니다.

또한 콜백 개체는 IBindStatusCallback::OnProgress, OnDataAvailable통한 데이터 가용성 알림 및 바인딩 작업의 상태에 대한 모니커의 다양한 기타 알림을 통해 진행률 알림을 받습니다.

클라이언트가 IBindStatusCallback::GetBindInfo대한 모니커의 호출에서 BINDF_ASYNCHRONOUS 플래그를 반환하지 않으면 바인딩 작업이 동기적으로 진행되며, BindToObject또는 BindToStorage대한 후속 호출에서 원하는 개체 또는 스토리지가 반환됩니다. 마찬가지로 클라이언트가 동기 작업을 원하고 진행률 알림 또는 콜백을 수신하지 않으려는 경우 IBindStatusCallback구현하지 않음으로써 비동기 모니커가 동기적으로 작동하도록 요청할 수 있습니다. 이러한 경우 비동기 모니커는 표준 동기 모니커처럼 동작합니다.

비동기 모니커