Bezpieczeństwo wątków
Wszystkie funkcje w tym interfejsie API są bezpieczne do współbieżnego wywoływania z różnych wątków. Jednak każdy obiekt przekazany jako parametr do funkcji ma określone zachowanie wątkowe, jak opisano poniżej.
Następujące dojścia są pojedyncze wątkowe i nie obsługują operacji współbieżnych dla określonego wystąpienia:
- 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
Następujące dojścia są wolne wątkowe i obsługują operacje współbieżne dla określonego wystąpienia:
W przypadku wszystkich tych dojść wątkowanie jest definiowane pod względem operacji (a nie wywołań funkcji). Operacja jest definiowana inaczej dla funkcji wywoływanych synchronicznie w porównaniu z funkcjami wywoływanych asynchronicznie:
- W przypadku funkcji wywoływanych synchronicznie operacja jest oczekująca podczas wykonywania funkcji.
- W przypadku funkcji wywoływanych asynchronicznie, jeśli funkcja zwraca kod zwrotny inny niż WS_S_ASYNC operacja jest oczekująca podczas wykonywania funkcji. Jeśli jednak funkcja zwróci WS_S_ASYNC , operacja oczekuje do momentu wywołania WS_ASYNC_CALLBACK. Aby uzyskać więcej informacji na temat asynchronicznego wywoływania funkcji, zobacz temat Asynchroniczny model. Aby uzyskać informacje o kodach błędów, zobacz wartości zwracane przez usługi Windows Web Services.
Niepowodzenie śledzenia kontraktu wątkowego dla obiektu spowoduje niezdefiniowane zachowanie.