Tempo de vida e threading do contexto de operação
O tempo de vida do contexto de operação, representado por um identificador WS_OPERATION_CONTEXT , determina o tempo de vida das propriedades que ele contém. Portanto, um contexto só deve ser usado dentro do tempo de vida da operação de serviço ou do retorno de chamada para o qual foi fornecido. O tempo de vida de uma chamada síncrona é a execução da própria função. Para uma chamada assíncrona, o tempo de vida termina quando a chamada assíncrona é concluída. O Modelo de Serviço não fornece garantias sobre o contexto depois que a chamada é concluída. O comportamento de depender do contexto de operação ou de qualquer uma de suas propriedades além de seu tempo de vida é indefinido.
Consulte também o exemplo de calculadora baseada em sessão , SessionfullCalculatorServiceExample.
Modelo de threading
O contexto de operação dá suporte ao threading gratuito, no entanto, isso é verdadeiro para o contexto de operação em si e não se aplica a nenhuma das propriedades que ele contém.
Ao registrar um retorno de chamada de cancelamento para uma operação de serviço por meio da função WsRegisterOperationForCancel , observe que o primeiro registro terá êxito; A configuração do retorno de chamada de cancelamento várias vezes, no entanto, falhará.