스레드 보안
이 API의 모든 함수는 서로 다른 스레드에서 동시에 호출하는 것이 안전합니다. 그러나 함수에 매개 변수로 전달된 각 개체에는 아래에 설명된 대로 특정 스레딩 동작이 있습니다.
다음 핸들은 단일 스레드이며 특정 instance 대한 동시 작업을 지원하지 않습니다.
- WS_HEAP
- WS_MESSAGE
- WS_XML_BUFFER
- WS_XML_READER
- WS_XML_WRITER
- WS_ERROR
- WS_OPERATION_CONTEXT
- WS_POLICY
- WS_METADATA
- WS_SECURITY_TOKEN
- WS_SECURITY_CONTEXT
다음 핸들은 자유 스레드이며 특정 instance 대한 동시 작업을 지원합니다.
이러한 모든 핸들에 대해 스레딩은 작업(함수 호출 아님)으로 정의됩니다. 작업은 동기적으로 호출된 함수와 비동기적으로 호출된 함수에 대해 다르게 정의됩니다.
- 동기적으로 호출된 함수의 경우 함수를 실행하는 동안 작업이 보류 중입니다.
- 비동기적으로 호출된 함수의 경우 함수가 WS_S_ASYNC 이외의 반환 코드를 반환하는 경우 함수를 실행하는 동안 작업이 보류 중입니다. 그러나 함수가 WS_S_ASYNC 를 반환하는 경우 WS_ASYNC_CALLBACK 호출될 때까지 작업이 보류 중입니다. 함수를 비동기적으로 호출하는 방법에 대한 자세한 내용은 비동기 모델 항목을 참조하세요. 오류 코드는 Windows Web Services 반환 값을 참조하세요.
개체에 대한 스레딩 계약을 따르지 않으면 정의되지 않은 동작이 발생합니다.