IDebugExpression2::EvaluateAsync

此方法异步计算表达式。

语法

int EvaluateAsync(
    enum_EVALFLAGS       dwFlags,
    IDebugEventCallback2 pExprCallback
);

参数

dwFlags
[in]控制表达式计算的 EVALFLAGS 枚举中的标志的组合。

pExprCallback
[in]此参数始终为 null 值。

返回值

如果成功,则返回 S_OK;否则,返回错误代码。 典型的错误代码是:

错误 说明
E_EVALUATE_BUSY_WITH_EVALUATION 当前正在计算另一个表达式,不支持同时计算表达式。

注解

此方法应在启动表达式计算后立即返回。 成功计算表达式后,必须将 IDebugExpressionEvaluationCompleteEvent2 发送到通过 Attach 或 Attach 提供的 IDebugEventCallback2 事件回调。

示例

以下示例演示如何为实现 IDebugExpression2 接口的简单CExpression对象实现此方法。

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

另请参阅