Share via


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

Confira também

Interface IDebugHostStatus