enumeração WS_CALLBACK_MODEL (webservices.h)
Especifica o comportamento de threading de um retorno de chamada (por exemplo, um WS_ASYNC_CALLBACK).
Syntax
typedef enum {
WS_SHORT_CALLBACK = 0,
WS_LONG_CALLBACK = 1
} WS_CALLBACK_MODEL;
Constantes
WS_SHORT_CALLBACK Valor: 0 Esse valor é usado para indicar que um retorno de chamada é invocado como curto. Quando um retorno de chamada é invocado como curto, ele deve evitar computação longa ou longa bloquear chamadas para que ele possa retornar ao chamador rapidamente. Durante o tempo que um retorno de chamada está executando curto, outros itens de trabalho podem não ser capazes de ser desempedido dentro do processo. Isso pode levar a um deadlock de fome, um sistema sem resposta ou um sistema subutilizado. Se for necessário fazer E/S dentro de um retorno de chamada que foi invocado curto, a melhor prática é para usar E/S assíncrona (em vez de E/S síncrona), para evitar chamadas de bloqueio longas. |
WS_LONG_CALLBACK Valor: 1 Esse valor é usado para indicar que um retorno de chamada é invocado por muito tempo. Um retorno de chamada chamado long não é necessário para retornar ao chamador rapidamente. No entanto, retornos de chamada longos são um recurso limitado, portanto, nem sempre é possível para invocar um retorno de chamada longo. Antes de invocar um retorno de chamada longo, o chamador deve garantir que haja outro thread disponível para remover o trabalho conforme necessário. Por exemplo, se um chamador precisar criar um thread, mas não é possível, então ele deve invocar o retorno de chamada curto. Todos os retornos de chamada devem ser capazes de lidar com a invocação curta, bem como com o tempo:
|
Comentários
Se um retorno de chamada será invocado longo ou curto, depende da implementação do chamador. As implementações de canal e ouvinte fornecem uma maneira de controlar isso para retornos de chamada assíncronos por meio das propriedades WS_CHANNEL_PROPERTY_ASYNC_CALLBACK_MODEL e WS_LISTENER_PROPERTY_ASYNC_CALLBACK_MODEL .
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 7 [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2008 R2 [aplicativos da área de trabalho | Aplicativos UWP] |
Cabeçalho | webservices.h |