Méthode IDebugHostStatus ::P ollUserInterrupt (dbgmodel.h)
La méthode PollUserInterrupt permet de déterminer si l’utilisateur de l’hôte de débogage a demandé une interruption de l’opération en cours. Un accesseur de propriété dans le modèle de données peut, pour instance, appeler du code arbitraire (par exemple, une méthode JavaScript). Ce code peut prendre un temps arbitraire. Afin de maintenir la réactivité de l’hôte de débogage, tout code de ce type qui peut prendre un temps arbitraire doit case activée pour une demande d’interruption en appelant cette méthode. Si la valeur interruptRequested revient à true, l’appelant doit immédiatement abandonner et retourner un résultat de E_ABORT.
Il est important que tout appelant des API de modèle de données qui reçoit une erreur de E_ABORT propager cette erreur vers l’extérieur et ne pas l’avaler.
Certains hôtes (en particulier les outils de débogage pour Windows) peuvent choisir d’échouer les demandes qui se produisent pendant qu’une interruption est en attente. Dans ce cas, de nombreux appels de méthode aux interfaces IDebugHost* retournent E_ABORT jusqu’à ce que le contrôle soit retourné à l’hôte de débogage.
Syntaxe
HRESULT PollUserInterrupt(
bool *interruptRequested
);
Paramètres
interruptRequested
Une indication indiquant si une interruption de l’utilisateur est en attente est retournée. Si la valeur retournée est true, l’appelant doit immédiatement arrêter ce qu’il fait et propager le code d’erreur E_ABORT vers l’extérieur.
Valeur retournée
Cette méthode retourne HRESULT qui indique la réussite ou l’échec.
Remarques
Exemple de Code
// 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;
}
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | dbgmodel.h |