Compartilhar via


IDebugExpression2::EvaluateAsync

Esse método avalia a expressão de forma assíncrona.

Sintaxe

int EvaluateAsync(
    enum_EVALFLAGS       dwFlags,
    IDebugEventCallback2 pExprCallback
);

Parâmetros

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

pExprCallback
[em] Esse parâmetro é sempre um valor nulo.

Valor de retorno

Se tiver êxito, retornará S_OK. Caso contrário, retornará um código de erro. Um código de erro típico é:

Erro Descrição
E_EVALUATE_BUSY_WITH_EVALUATION Outra expressão está sendo avaliada no momento, e a avaliação simultânea da expressão não é suportada.

Comentários

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

Exemplo

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

Confira também