IDebugExpression2::EvaluateAsync
此方法异步计算表达式。
语法
参数
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;
}