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 em 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 desse tipo que possa levar um período arbitrário deve marcar para uma solicitação de interrupção por meio da chamada desse método. Se o valor interruptRequested voltar como true, o chamador deverá anular imediatamente e retornar 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 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á pendente ou não é 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.
Retornar valor
Esse método retorna HRESULT que indica êxito ou falha.
Comentários
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 |