IDebugExpression2::EvaluateAsyncIDebugExpression2::EvaluateAsync

Esse método avalia a expressão de forma assíncrona.This method evaluates the expression asynchronously.

SintaxeSyntax

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

ParâmetrosParameters

dwFlags
[in] Uma combinação de sinalizadores do EVALFLAGS enumeração que controlam a avaliação da expressão.[in] A combination of flags from the EVALFLAGS enumeration that control expression evaluation.

pExprCallback
[in] Esse parâmetro é sempre um valor nulo.[in] This parameter is always a null value.

Valor de retornoReturn Value

Se for bem-sucedido, retornará S_OK; caso contrário, retornará um código de erro.If successful, returns S_OK; otherwise returns an error code. Um código de erro típica é:A typical error code is:

ErroError DescriçãoDescription
E_EVALUATE_BUSY_WITH_EVALUATIONE_EVALUATE_BUSY_WITH_EVALUATION Outra expressão está sendo avaliada no momento, e não há suporte para a avaliação da expressão simultâneas.Another expression is currently being evaluated, and simultaneous expression evaluation is not supported.

ComentáriosRemarks

Esse método deve retornar imediatamente depois de ter começado a avaliação da expressão.This method should return immediately after it has started the expression evaluation. Quando a expressão é avaliada com êxito, uma IDebugExpressionEvaluationCompleteEvent2 deve ser enviada para o IDebugEventCallback2 retorno de chamada do evento conforme fornecido por meio de anexar ou anexar.When the expression is successfully evaluated, an IDebugExpressionEvaluationCompleteEvent2 must be sent to the IDebugEventCallback2 event callback as supplied through Attach or Attach.

ExemploExample

O exemplo a seguir mostra como implementar esse método para um simples CExpression objeto que implementa o IDebugExpression2 interface.The following example shows how to implement this method for a simple CExpression object that implements the IDebugExpression2 interface.

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;
}

Consulte tambémSee also