enumerazione WS_CALLBACK_MODEL (webservices.h)
Specifica il comportamento di threading di un callback, ad esempio un WS_ASYNC_CALLBACK.
Sintassi
typedef enum {
WS_SHORT_CALLBACK = 0,
WS_LONG_CALLBACK = 1
} WS_CALLBACK_MODEL;
Costanti
WS_SHORT_CALLBACK Valore: 0 Questo valore viene usato per indicare che viene richiamato un callback short. Quando viene richiamato un callback breve, è consigliabile evitare calcoli lunghi o lunghe blocco delle chiamate in modo che possa tornare rapidamente al chiamante. Durante il tempo che un callback è in esecuzione breve, altri elementi di lavoro potrebbero non essere in grado di essere dequeued all'interno del processo. Ciò può portare a un deadlock di fame, un unresponsive system, o un sistema sottoutilizzato. Se è necessario eseguire operazioni di I/O all'interno di un callback richiamato brevemente, la procedura consigliata è per usare operazioni di I/O asincrone (invece di operazioni di I/O sincrone), per evitare lunghe chiamate di blocco. |
WS_LONG_CALLBACK Valore: 1 Questo valore viene usato per indicare che viene richiamato un callback lungo. Un callback richiamato long non è necessario per tornare rapidamente al chiamante. Tuttavia, i callback lunghi sono una risorsa limitata, quindi non è sempre possibile per richiamare un callback lungo. Prima di richiamare un callback lungo, il chiamante deve assicurarsi che sia presente un altro thread disponibile per rimuovere dalla coda il lavoro in base alle esigenze. Ad esempio, se un chiamante deve creare un thread ma non è in grado di, quindi deve richiamare il callback short. Tutti i callback devono essere in grado di gestire la chiamata a breve e a lungo:
|
Commenti
Indica se un callback verrà richiamato a lungo o breve è fino all'implementazione del chiamante. Le implementazioni del canale e del listener consentono di controllare questa funzionalità per i callback asincroni tramite le proprietà WS_CHANNEL_PROPERTY_ASYNC_CALLBACK_MODEL e WS_LISTENER_PROPERTY_ASYNC_CALLBACK_MODEL .
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 7 [app desktop | App UWP] |
Server minimo supportato | Windows Server 2008 R2 [app desktop | App UWP] |
Intestazione | webservices.h |