IDebugExpression2::EvaluateAsync
Questo metodo valuta l'espressione in modo asincrono.
Sintassi
Parametri
dwFlags
[in] Combinazione di flag dell'enumerazione EVALFLAGS che controlla la valutazione dell'espressione.
pExprCallback
[in] Questo parametro è sempre un valore Null.
Valore restituito
Se ha esito positivo, restituisce S_OK
. In caso contrario, restituisce un codice di errore. Un codice di errore tipico è:
Errore | Descrizione |
---|---|
E_EVALUATE_BUSY_WITH_EVALUATION | È in corso la valutazione di un'altra espressione e la valutazione simultanea delle espressioni non è supportata. |
Osservazioni:
Questo metodo deve restituire immediatamente dopo l'avvio della valutazione dell'espressione. Quando l'espressione viene valutata correttamente, è necessario inviare un callback dell'evento IDebugExpressionEvaluationCompleteEvent2 all'evento IDebugEventCallback2 come specificato tramite Attach o Attach.
Esempio
Nell'esempio seguente viene illustrato come implementare questo metodo per un oggetto semplice CExpression
che implementa l'interfaccia 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;
}