Segurança de roscas
Todas as funções nesta API são seguras para chamar simultaneamente a partir 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 identificadores a seguir são de thread único e não oferecem 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 identificadores a seguir são encadeados livres e suportam 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. Se a função retornar WS_S_ASYNC , no entanto, 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 Windows Web Services Return Values.
A falha em seguir o contrato de threading para um objeto resultará em comportamento indefinido.