IDebugHostStatus::P ollUserInterrupt-Methode (dbgmodel.h)
Die PollUserInterrupt-Methode wird verwendet, um zu fragen, ob der Benutzer des Debughosts eine Unterbrechung des aktuellen Vorgangs angefordert hat. Ein Eigenschaftsaccessor im Datenmodell kann z. B. beliebigen Code aufrufen (z. B. eine JavaScript-Methode). Dieser Code kann eine beliebige Zeit in Anspruch nehmen. Um den Debughost reaktionsfähig zu halten, sollte jeder solche Code, der eine beliebige Zeit in Anspruch nehmen kann, eine Unterbrechungsanforderung durch Aufrufen dieser Methode überprüfen. Wenn der wert "interruptRequested" als "true" zurückgegeben wird, sollte der Aufrufer sofort abgebrochen und ein Ergebnis von E_ABORT zurückgeben.
Es ist wichtig, dass jeder Aufrufer von Datenmodell-APIs, die einen Fehler von E_ABORT empfängt, diesen Fehler nach außen verteilt und nicht nur verschluckt.
Bestimmte Hosts (insbesondere Debuggingtools für Windows) können sich für Fehlerabfragen entscheiden, die auftreten, während eine Unterbrechung aussteht. In solchen Fällen geben viele Methodenaufrufe an IDebugHost* Schnittstellen E_ABORT zurück, bis das Steuerelement an den Debughost zurückgegeben wurde.
Syntax
HRESULT PollUserInterrupt(
bool *interruptRequested
);
Parameter
interruptRequested
Ein Hinweis darauf, ob ein Benutzerunterbrechung aussteht, wird zurückgegeben. Wenn der zurückgegebene Wert "true" ist, sollte der Aufrufer sofort beenden, was er tut, und den E_ABORT Fehlercode nach außen verteilen.
Rückgabewert
Diese Methode gibt HRESULT zurück, das Erfolg oder Fehler angibt.
Bemerkungen
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 |