WsAsyncExecute 함수(webservices.h)
비동기 작업을 구현하기 위한 도우미 함수입니다.
구문
HRESULT WsAsyncExecute(
[in] WS_ASYNC_STATE *asyncState,
[in, optional] WS_ASYNC_FUNCTION operation,
[in] WS_CALLBACK_MODEL callbackModel,
[in] void *callbackState,
[in, optional] const WS_ASYNC_CONTEXT *asyncContext,
[in, optional] WS_ERROR *error
);
매개 변수
[in] asyncState
비동기 작업 중에 사용되는 WS_ASYNC_STATE 구조체에 대한 포인터입니다. 이는 직접 사용하기 위한 것이 아닌 상태 유지 관리 매개 변수입니다. 애플리케이션은 WS_ASYNC_STATE 구조를 할당하고 전체 비동기 작업 중에 활성 상태로 유지되어야 합니다. 비동기 작업이 완료된 후 WS_ASYNC_STATE 구조를 다시 사용할 수 있습니다.
[in, optional] operation
수행할 초기 비동기 작업을 나타냅니다.
[in] callbackModel
콜백이 long 또는 short로 호출되는지 여부를 나타냅니다. 자세한 내용은 WS_CALLBACK_MODEL
[in] callbackState
각 WS_ASYNC_FUNCTION 전달되는 사용자 정의 값에 대한 void 포인터입니다.
[in, optional] asyncContext
함수를 비동기적으로 호출하기 위한 정보에 대한 포인터입니다. NULL을 전달하여 함수를 동기적으로 호출합니다.
[in, optional] error
함수가 실패할 경우 추가 오류 정보를 수신하는 WS_ERROR 구조체에 대한 포인터입니다.
반환 값
함수가 성공하면 NO_ERROR 반환합니다. 그렇지 않으면 HRESULT 오류 코드를 반환합니다.
설명
WWSAPI가 비동기 작업을 처리하는 방법을 이해하려면 비동기 모델 항목을 참조하세요.
대부분의 경우 비동기 작업은 다른 비동기 작업으로 구성됩니다. 각 비동기 작업은 콜백이 호출됨을 나타내는 WS_S_ASYNC 또는 다른 성공 또는 실패 코드를 반환할 수 있습니다. 이 경우 콜백이 호출되지 않습니다. 호출자가 동기적으로 작업을 수행하도록 요청하고 있음을 나타내는 NULL WS_ASYNC_CONTEXT 수락하도록 작업을 준비해야 합니다. 또한 콜백이 적절하게 호출되도록 해야 합니다. 복잡한 비동기 작업에서 WsAsyncExecute 는 이러한 세부 정보를 간소화합니다.
WsAsyncExecute 는 비동기 작업을 시작하고 비동기 작업이 완료될 때 호출할 함수를 나타낼 수 있는 사용자 정의 콜백을 호출하여 작동합니다. 이 시퀀스는 콜백이 호출할 다른 함수를 설정하지 않을 때까지 계속됩니다. 이 시점에서 WS_ASYNC_CONTEXT 지정된 콜백은 작업이 비동기적으로 완료된 경우 호출됩니다.
WS_ASYNC_STATE 매개 변수는 WsAsyncExecute에서 상태를 유지하는 데 사용되며 호출자가 초기화, 검사 또는 사용할 수 없습니다. 그러나 호출자는 WS_ASYNC_STATE 할당하고 전체 비동기 작업 중에 활성 상태로 유지되어야 합니다. 비동기 작업이 완료되면 WS_ASYNC_STATE 다시 사용할 수 있습니다.
AsyncAdd3ExplicitExample 및 AsyncAdd3ImplicitExample 예제에서는 WsAsyncExecute를 사용하여 동일한 비동기 함수를 수동으로 구현하는 방법을 보여 줍니다.
요구 사항
지원되는 최소 클라이언트 | Windows 7 [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2008 R2 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | webservices.h |
라이브러리 | WebServices.lib |
DLL | WebServices.dll |