Acesso thread-safe
Todas as funções nessa API são seguras para chamar simultaneamente de threads diferentes. No entanto, cada objeto passado como um parâmetro para as funções tem um comportamento de threading específico, conforme descrito abaixo.
Os seguintes identificadores são de thread único e não dão suporte a operações simultâneas para uma instância específica:
- 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
Os seguintes identificadores são threaded gratuito e dão suporte a operações simultâneas para uma instância específica:
Para todos esses identificadores, o threading é definido em termos de operações (não chamadas de função). Uma operação é definida de forma diferente para funções invocadas de forma síncrona versus funções invocadas de forma assíncrona:
- Para funções invocadas de forma síncrona, a operação está pendente durante a execução da função.
- Para funções invocadas de forma assíncrona, se a função retornar um código de retorno diferente de WS_S_ASYNC a operação estiver pendente durante a execução da função. No entanto, se a função retornar WS_S_ASYNC , a operação estará pendente até que o WS_ASYNC_CALLBACK seja invocado. Para obter mais informações sobre como invocar funções de forma assíncrona, consulte o tópico Modelo Assíncrono . Para obter códigos de erro, consulte Valores retornados dos Serviços Web do Windows.
A falha ao seguir o contrato de threading de um objeto resultará em um comportamento indefinido.