énumération WS_CALLBACK_MODEL (webservices.h)
Spécifie le comportement de thread d’un rappel (par exemple, un WS_ASYNC_CALLBACK).
Syntax
typedef enum {
WS_SHORT_CALLBACK = 0,
WS_LONG_CALLBACK = 1
} WS_CALLBACK_MODEL;
Constantes
WS_SHORT_CALLBACK Valeur : 0 Cette valeur est utilisée pour indiquer qu’un rappel est appelé court. Lorsqu’un rappel est appelé de façon courte, il doit éviter des calculs longs ou longs blocage des appels afin qu’il puisse revenir rapidement à l’appelant. Pendant le temps qu’un rappel est en cours d’exécution courte, d’autres éléments de travail peuvent ne pas être en mesure d’être mis en file d’attente dans le processus. Cela peut conduire à un blocage de la faim, une un système qui ne répond pas ou un système sous-utilisé. S’il est nécessaire d’effectuer des E/S dans un rappel qui a été appelé court, la meilleure pratique est pour utiliser des E/S asynchrones (au lieu d’E/S synchrones) afin d’éviter de longs appels bloquants. |
WS_LONG_CALLBACK Valeur : 1 Cette valeur est utilisée pour indiquer qu’un rappel est appelé longuement. Un rappel appelé long n’est pas nécessaire pour revenir rapidement à l’appelant. Toutefois, les rappels longs étant une ressource limitée, ce n’est pas toujours possible pour appeler un rappel long. Avant d’appeler un rappel long, l’appelant doit s’assurer qu’il existe un autre thread disponible pour le travail de retrait de la file d’attente si nécessaire. Par exemple, si un appelant doit créer un thread, mais n’est pas en mesure de le faire, puis il doit appeler le rappel court. Tous les rappels doivent être en mesure de gérer l’appel court et long :
|
Remarques
La question de savoir si un rappel sera appelé long ou court est à la charge de l’implémentation de l’appelant. Les implémentations de canal et d’écouteur permettent de contrôler cela pour les rappels asynchrones via les propriétés WS_CHANNEL_PROPERTY_ASYNC_CALLBACK_MODEL et WS_LISTENER_PROPERTY_ASYNC_CALLBACK_MODEL .
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 7 [applications de bureau | Applications UWP] |
Serveur minimal pris en charge | Windows Server 2008 R2 [applications de bureau | Applications UWP] |
En-tête | webservices.h |