비동기 실행 작업이 완료되거나 시간 초과가 발생할 때까지 기다립니다.
문법
HRESULT WaitForAsynchCompletion(
DWORD dwMillisecTimeOut);
주장들
dwMillisecTimeOut[in]
시간 제한(밀리초)입니다.
반환 코드 값
S_OK
메서드가 성공했습니다.
E_UNEXPECTED
ITransaction::Commit 또는 ITransaction::Abort가 호출되었거나 초기화 단계 중에 행 집합이 취소되었기 때문에 행 집합은 사용되지 않는 상태입니다.
DB_E_CANCELED
행 집합 채우기 또는 데이터 원본 개체 초기화 중에 비동기 처리가 취소되었습니다.
DB_S_ASYNCHRONOUS
지정된 시간 제한에 도달했더라도 작업이 아직 완료되지 않았습니다.
비고
위에 나열된 반환 코드 값 외에도 ISSAsynchStatus::WaitForAsynchCompletion 메서드는 핵심 OLEDB ICommand::Execute 및 IDBInitialize::Initialize 메서드에서 반환된 반환 코드 값도 지원합니다.
비고
ISSAsynchStatus::WaitForAsynchCompletion 메서드는 시간 제한 값(밀리초)이 지나거나 보류 중인 작업이 완료될 때까지 반환되지 않습니다. Command 개체에는 시간이 초과되기 전에 쿼리가 실행되는 시간(초)을 제어하는 CommandTimeout 속성이 있습니다. ISSAsynchStatus::WaitForAsynchCompletion 메서드와 함께 사용하면 CommandTimeout 속성이 무시됩니다.
시간 제한 속성은 비동기 작업에 대해 무시됩니다. ISSAsynchStatus::WaitForAsynchCompletion의 제한 시간 매개 변수는 컨트롤이 호출자에게 반환되기 전에 경과되는 최대 시간을 지정합니다. 이 제한 시간이 만료되면 DB_S_ASYNCHRONOUS 반환됩니다. 시간 제한은 비동기 작업을 취소하지 않습니다. 애플리케이션이 제한 시간 내에 완료되지 않은 비동기 작업을 취소해야 하는 경우 시간 초과를 기다린 다음 DB_S_ASYNCHRONOUS 반환되는 경우 작업을 명시적으로 취소해야 합니다.
비고
OLE DB 서비스 구성 요소를 사용하는 경우 DB_S_ASYNCHRONOUS 필요할 때 S_OK 반환될 수 있으므로 애플리케이션은 ISSAsynchStatus::GetStatus 를 호출하여 S_OK 또는 DB_S_ASYNCHRONOUS 반환될 때 완료를 확인해야 합니다.
dwMillisecTimeOut 값이 INFINITE로 설정된 경우 ISSAsynchStatus::WaitForAsynchCompletion 메서드는 작업이 완료될 때까지 차단됩니다. dwMillisecTimeOut 값이 0으로 설정된 경우 메서드는 보류 중인 작업의 상태와 함께 즉시 반환됩니다. 작업이 완료되기 전에 제한 시간이 만료되면 DB_S_ASYNCHRONOUS 반환됩니다.
제한 시간이 만료되기 전에 작업이 완료되면 반환된 HRESULT는 작업에서 반환된 HRESULT(작업이 동기적으로 수행되었으면 반환된 HRESULT)가 됩니다.
또한 SSPROP_ISSAsynchStatus 속성이 DBPROPSET_SQLSERVERROWSET 속성 집합에 추가되었습니다. ISSAsynchStatus 인터페이스를 지원하는 공급자는 값이 VARIANT_TRUE 이 속성을 구현해야 합니다.