Sécurité des threads
Toutes les fonctions de cette API sont sécurisées pour appeler simultanément à partir de différents threads. Toutefois, chaque objet passé en tant que paramètre aux fonctions a un comportement de threading spécifique, comme décrit ci-dessous.
Les handles suivants sont threads uniques et ne prennent pas en charge les opérations simultanées pour une instance particulière :
- 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
Les handles suivants sont threadés libres et prennent en charge les opérations simultanées pour une instance particulière :
Pour tous ces handles, le threading est défini en termes d’opérations (et non d’appels de fonction). Une opération est définie différemment pour les fonctions appelées de façon synchrone par rapport aux fonctions appelées de façon asynchrone :
- Pour les fonctions appelées de façon synchrone, l’opération est en attente pendant l’exécution de la fonction.
- Pour les fonctions appelées de manière asynchrone, si la fonction retourne un code de retour autre que WS_S_ASYNC l’opération est en attente pendant l’exécution de la fonction. Si la fonction retourne WS_S_ASYNC, toutefois, l’opération est en attente jusqu’à ce que le WS_ASYNC_CALLBACK soit appelé. Pour plus d’informations sur l’appel asynchrone des fonctions, consultez la rubrique modèle asynchrone. Pour obtenir des codes d’erreur, consultez valeurs de retour des services web Windows.
L’échec du suivi du contrat de thread pour un objet entraîne un comportement non défini.