Partilhar via


IDebugExpression2::EvaluateAsync

Esse método avalia a expressão assincronamente.

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

Parâmetros

  • dwFlags
    [in] Uma combinação de sinalizadores da EVALFLAGS enumeração que controlam a avaliação da expressão.

  • pExprCallback
    [in] Este parâmetro é sempre um valor nulo.

Valor de retorno

Se bem-sucedida, retorna S_OK; Caso contrário, retorna um código de erro. Um código de erro típica é:

Erro

Descrição

E_EVALUATE_BUSY_WITH_EVALUATION

Outra expressão no momento está sendo avaliada, e não há suporte para a avaliação da expressão simultâneas.

Comentários

Esse método deve retornar imediatamente após ter começado a avaliação da expressão. Quando a expressão é avaliada com êxito, um IDebugExpressionEvaluationCompleteEvent2 deve ser enviado para o IDebugEventCallback2 retorno de chamada de evento conforme fornecido por meio de IDebugProgram2::Attach ou IDebugEngine2::Attach.

Exemplo

O exemplo a seguir mostra como implementar este método para um simples CExpression objeto que implementa o 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ém

Referência

IDebugExpression2

IDebugExpressionEvaluationCompleteEvent2

EVALFLAGS

IDebugEventCallback2