WS_CALLBACK_MODEL-Enumeration (webservices.h)
Gibt das Threadingverhalten eines Rückrufs an (z. B. eine WS_ASYNC_CALLBACK).
Syntax
typedef enum {
WS_SHORT_CALLBACK = 0,
WS_LONG_CALLBACK = 1
} WS_CALLBACK_MODEL;
Konstanten
WS_SHORT_CALLBACK Wert: 0 Dieser Wert wird verwendet, um anzugeben, dass ein Rückruf kurz aufgerufen wird. Wenn ein Rückruf kurz aufgerufen wird, sollten langwierige Berechnungen oder lange Berechnungen vermieden werden. Blockiert Anrufe, damit er schnell zum Aufrufer zurückkehren kann. Während der Zeit dass ein Rückruf kurz ausgeführt wird, können andere Arbeitselemente möglicherweise nicht sein. innerhalb des Prozesses entfernt. Dies kann zu einem Hunger-Deadlock führen, nicht reagierendes System oder ein nicht ausgelastetes System. Wenn E/A innerhalb eines Kurzaufrufs ausgeführt werden muss, ist die bewährte Methode , um asynchrone E/A (anstelle synchroner E/A)-Vorgänge zu verwenden, um langwierige Blockieren von Aufrufen zu vermeiden. |
WS_LONG_CALLBACK Wert: 1 Dieser Wert wird verwendet, um anzugeben, dass ein Rückruf lang aufgerufen wird. Ein lang aufgerufener Rückruf ist nicht erforderlich, um schnell zum Aufrufer zurückzukehren. Lange Rückrufe sind jedoch eine begrenzte Ressource, sodass dies nicht immer möglich ist. , um einen Rückruf long aufzurufen. Bevor er einen Rückruf long aufruft, muss der Aufrufer sicherstellen, dass ein anderer Thread vorhanden ist. verfügbar, um nach Bedarf arbeiten zu können. Beispiel: Wenn ein Aufrufer erstellen muss Ein Thread kann aber nicht, dann muss der Rückruf short aufgerufen werden. Alle Rückrufe müssen in der Lage sein, sowohl kurz als auch lang aufgerufen zu werden:
|
Hinweise
Ob ein Rückruf lang oder kurz aufgerufen wird, hängt von der Aufruferimplementierung ab. Die Kanal- und Listenerimplementierungen bieten eine Möglichkeit, dies für asynchrone Rückrufe über die Eigenschaften WS_CHANNEL_PROPERTY_ASYNC_CALLBACK_MODEL und WS_LISTENER_PROPERTY_ASYNC_CALLBACK_MODEL zu steuern.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 7 [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 R2 [Desktop-Apps | UWP-Apps] |
Kopfzeile | webservices.h |