IDebugExpression2::EvaluateAsync
如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件。
這個方法會以非同步方式評估運算式。
語法
HRESULT EvaluateAsync (
EVALFLAGS dwFlags,
IDebugEventCallback2* pExprCallback
);
int EvaluateAsync(
enum_EVALFLAGS dwFlags,
IDebugEventCallback2 pExprCallback
);
參數
dwFlags
[in]從旗標的組合EVALFLAGS控制運算式評估的列舉型別。
pExprCallback
[in]這個參數永遠是 null 值。
傳回值
如果成功,傳回S_OK
; 否則會傳回錯誤碼。 常見的錯誤程式碼是︰
錯誤 | 描述 |
---|---|
E_EVALUATE_BUSY_WITH_EVALUATION | 另一個運算式目前正在評估,並不支援同時運算式評估。 |
備註
這個方法應該會開始運算式評估之後,立即傳回。 當成功評估運算式時, IDebugExpressionEvaluationCompleteEvent2必須傳送至IDebugEventCallback2事件回呼提供透過附加或附加。
範例
下列範例示範如何實作這種簡單的方式CExpression
實作物件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;
}
另請參閱
IDebugExpression2
IDebugExpressionEvaluationCompleteEvent2
EVALFLAGS
IDebugEventCallback2