IDebugExpression2::EvaluateAsyncIDebugExpression2::EvaluateAsync

Este método evalúa la expresión de forma asincrónica.This method evaluates the expression asynchronously.

SintaxisSyntax

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

ParámetrosParameters

dwFlags
[in] Una combinación de marcas de la EVALFLAGS enumeración que controlan la evaluación de expresiones.[in] A combination of flags from the EVALFLAGS enumeration that control expression evaluation.

pExprCallback
[in] Este parámetro siempre es un valor null.[in] This parameter is always a null value.

Valor devueltoReturn Value

Si es correcto, devuelve S_OK; en caso contrario, devuelve un código de error.If successful, returns S_OK; otherwise returns an error code. Un código de error típico es:A typical error code is:

ErrorError DescripciónDescription
E_EVALUATE_BUSY_WITH_EVALUATIONE_EVALUATE_BUSY_WITH_EVALUATION Se está evaluando la otra expresión, y no se admite la evaluación de expresión simultáneas.Another expression is currently being evaluated, and simultaneous expression evaluation is not supported.

ComentariosRemarks

Este método debe devolver inmediatamente después de haberse iniciado la evaluación de expresiones.This method should return immediately after it has started the expression evaluation. Cuando la expresión se evalúa correctamente, un IDebugExpressionEvaluationCompleteEvent2 debe enviarse a la IDebugEventCallback2 devolución de llamada de evento proporcionados a través de adjuntar o adjuntar.When the expression is successfully evaluated, an IDebugExpressionEvaluationCompleteEvent2 must be sent to the IDebugEventCallback2 event callback as supplied through Attach or Attach.

EjemploExample

El ejemplo siguiente muestra cómo implementar este método para una sencilla CExpression objeto que implementa el IDebugExpression2 interfaz.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;  
}  

Vea tambiénSee Also

IDebugExpression2 IDebugExpression2
IDebugExpressionEvaluationCompleteEvent2 IDebugExpressionEvaluationCompleteEvent2
EVALFLAGS EVALFLAGS
IDebugEventCallback2IDebugEventCallback2