IDebugHostStatus::P ollUserInterrupt-Methode (dbgmodel.h)
Mit der PollUserInterrupt-Methode wird abgefragt, ob der Benutzer des Debughosts eine Unterbrechung des aktuellen Vorgangs angefordert hat. Ein Eigenschaftsaccessor im Datenmodell kann für instance beliebigen Code aufrufen (z. B. eine JavaScript-Methode). Dieser Code kann einen beliebigen Zeitraum in Anspruch nehmen. Um die Reaktionsfähigkeit des Debughosts aufrechtzuerhalten, sollte jeder code, der eine beliebige Zeit in Anspruch nehmen kann, über den Aufruf dieser Methode auf eine Interruptanforderung überprüfen. Wenn der interruptRequested-Wert als true zurückgegeben wird, sollte der Aufrufer sofort abbrechen und ein Ergebnis von E_ABORT zurückgeben.
Es ist wichtig, dass jeder Aufrufer von Datenmodell-APIs, der einen Fehler von E_ABORT empfängt, diesen Fehler nach außen weitergeben und nicht nur ihn schlucken.
Bestimmte Hosts (insbesondere Debugtools für Windows) entscheiden sich möglicherweise für fehlschlagende Abfragen, die auftreten, während ein Interrupt aussteht. Unter solchen Umständen geben viele Methodenaufrufe von IDebugHost*-Schnittstellen E_ABORT zurück, bis die Steuerung an den Debughost zurückgegeben wurde.
Syntax
HRESULT PollUserInterrupt(
bool *interruptRequested
);
Parameter
interruptRequested
Es wird ein Hinweis darauf zurückgegeben, ob eine Benutzerunterbrechung aussteht. Wenn der zurückgegebene Wert true ist, sollte der Aufrufer sofort beenden, was er tut, und den E_ABORT Fehlercode nach außen weitergeben.
Rückgabewert
Diese Methode gibt HRESULT zurück, das den Erfolg oder Fehler angibt.
Hinweise
Beispielcode
// 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;
}
Anforderungen
Anforderung | Wert |
---|---|
Header | dbgmodel.h |