Método IDebugHostStatus::P ollUserInterrupt (dbgmodel.h)
O método PollUserInterrupt é usado para perguntar se o usuário do host de depuração solicitou uma interrupção da operação atual. Um acessador de propriedade no modelo de dados pode, por exemplo, chamar um código arbitrário (por exemplo: um método JavaScript). Esse código pode levar um tempo arbitrário. Para manter o host de depuração responsivo, qualquer código que possa levar um tempo arbitrário deve verificar uma solicitação de interrupção por meio da chamada desse método. Se o valor interruptRequested voltar como true, o chamador deverá anular e retornar imediatamente um resultado de E_ABORT.
É importante que qualquer chamador de APIs de modelo de dados que receba um erro de E_ABORT propagar esse erro para fora e não engoli-lo apenas.
Determinados hosts (em particular, Ferramentas de Depuração para Windows) podem optar por falhar nas consultas que ocorrem enquanto uma interrupção está pendente. Nessas circunstâncias, muitas chamadas de método para interfaces IDebugHost* retornarão E_ABORT até que o controle retorne ao host de depuração.
Sintaxe
HRESULT PollUserInterrupt(
bool *interruptRequested
);
Parâmetros
interruptRequested
Uma indicação de se uma interrupção de usuário está ou não pendente é retornada. Se o valor retornado for true, o chamador deverá parar imediatamente o que está fazendo e propagar o código de erro E_ABORT para fora.
Valor de retorno
Esse método retorna HRESULT que indica êxito ou falha.
Observações
de código de exemplo
// within some method...
ComPtr<IDebugHost> spHost; /* get the host*/
ComPtr<IDebugHostStatus> spStatus;
spHost.As(&spStatus);
bool isInterruptRequested;
if (spStatus != nullptr && SUCCEEDED(spStatus->PollUserInterrupt(&isInterruptRequested)) && isInterruptRequested)
{
// This is the return code to indicate a user initiated abort.
return E_ABORT;
}
Requisitos
Requisito | Valor |
---|---|
cabeçalho | dbgmodel.h |