Freigeben über


IDebugExpression2::EvaluateAsync

Diese Methode wertet den Ausdruck asynchron aus.

HRESULT EvaluateAsync ( 
   EVALFLAGS             dwFlags,
   IDebugEventCallback2* pExprCallback
);
int EvaluateAsync(
   enum_EVALFLAGS       dwFlags, 
   IDebugEventCallback2 pExprCallback
);

Parameter

  • dwFlags
    [in] Eine Kombination von Flags aus der EVALFLAGS-Enumeration, die Ausdrucksauswertung steuern.

  • pExprCallback
    [in] Dieser Parameter ist immer ein NULL-Wert.

Rückgabewert

Bei Erfolg gibt S_OKzurück. Andernfalls wird ein Fehlercode zurückgegeben. Ein typischer Fehlercode ist:

Fehler

Beschreibung

E_EVALUATE_BUSY_WITH_EVALUATION

Ein anderer Ausdruck wird nur ausgewertet, und gleichzeitige Ausdrucksauswertung wird nicht unterstützt.

Hinweise

Diese Methode sollte sofort zurückkehren, nachdem sie die Ausdrucksauswertung gestartet wurde. Wenn der Ausdruck erfolgreich ausgewertet wird, muss IDebugExpressionEvaluationCompleteEvent2 an den Rückruf IDebugEventCallback2-Ereignis gesendet werden, wie durch IDebugProgram2::Anfügen oder IDebugEngine2::Anfügenangegeben.

Beispiel

Im folgenden Beispiel wird veranschaulicht, wie diese Methode für ein einfaches CExpression-Objekt implementiert, das die IDebugExpression2-Schnittstelle implementiert.

HRESULT CExpression::EvaluateAsync(EVALFLAGS dwFlags,
                                   IDebugEventCallback2* pExprCallback)
{
    // Set the aborted state to FALSE
    // in case the user tries to redo the evaluation after aborting.
    m_bAborted = FALSE;
    // Post the WM_EVAL_EXPR message in the message queue of the current thread.
    // This starts the expression evaluation on a background thread.
    PostThreadMessage(GetCurrentThreadId(), WM_EVAL_EXPR, 0, (LPARAM) this);
    return S_OK;
}

Siehe auch

Referenz

IDebugExpression2

IDebugExpressionEvaluationCompleteEvent2

EVALFLAGS

IDebugEventCallback2