Compartir a través de


Método IDebugHostStatus::P ollUserInterrupt (dbgmodel.h)

El método PollUserInterrupt se usa para preguntar si el usuario del host de depuración ha solicitado una interrupción de la operación actual. Un descriptor de acceso de propiedad en el modelo de datos puede, por ejemplo, llamar a código arbitrario (por ejemplo: un método de JavaScript). Ese código puede tardar un tiempo arbitrario. Para mantener la capacidad de respuesta del host de depuración, cualquier código que pueda tardar un tiempo arbitrario debe comprobar si hay una solicitud de interrupción mediante una llamada a este método. Si el valor interruptRequested vuelve como true, el autor de la llamada debe anular inmediatamente y devolver un resultado de E_ABORT.

Es importante que cualquier autor de llamada de las API del modelo de datos que reciba un error de E_ABORT propagar ese error hacia fuera y no tragarlo solo.

Algunos hosts (en concreto, herramientas de depuración para Windows) pueden optar por no realizar consultas que se produzcan mientras una interrupción está pendiente. En tales circunstancias, muchas llamadas de método a interfaces IDebugHost* devolverán E_ABORT hasta que el control haya vuelto al host de depuración.

Sintaxis

HRESULT PollUserInterrupt(
  bool *interruptRequested
);

Parámetros

interruptRequested

Se devuelve una indicación de si una interrupción del usuario está pendiente. Si el valor devuelto es true, el autor de la llamada debe detener inmediatamente lo que está haciendo y propagar el código de error E_ABORT hacia fuera.

Valor devuelto

Este método devuelve HRESULT, que indica que se ha realizado correctamente o no.

Comentarios

Código de ejemplo

// 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
Header dbgmodel.h

Consulte también

Interfaz IDebugHostStatus