IDebugExpression2::EvaluateAsync
Ta metoda oblicza wyrażenie asynchronicznie.
Składnia
Parametry
dwFlags
[in] Kombinacja flag z wyliczenia EVALFLAGS , które kontroluje ocenę wyrażenia.
pExprCallback
[in] Ten parametr jest zawsze wartością null.
Wartość zwracana
Jeśli operacja powiedzie się, zwraca wartość S_OK
; w przeciwnym razie zwraca kod błędu. Typowy kod błędu to:
Błąd | opis |
---|---|
E_EVALUATE_BUSY_WITH_EVALUATION | Obecnie oceniane jest inne wyrażenie, a jednoczesne obliczanie wyrażeń nie jest obsługiwane. |
Uwagi
Ta metoda powinna zostać zwrócona natychmiast po rozpoczęciu oceny wyrażenia. Gdy wyrażenie zostanie pomyślnie ocenione, wywołanie zwrotne zdarzeń IDebugExpressionEvaluationCompleteEvent2 musi zostać wysłane do wywołania zwrotnego zdarzeń IDebugEventCallback2 dostarczonego za pośrednictwem dołączania lub dołączania.
Przykład
W poniższym przykładzie pokazano, jak zaimplementować tę metodę dla prostego CExpression
obiektu, który implementuje interfejs IDebugExpression2 .
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;
}