共用方式為


IDebugExpression2::EvaluateAsync

這個方法會以非同步方式評估運算式。

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事件的回呼,透過提供IDebugProgram2::AttachIDebugEngine2::Attach

範例

下列範例會示範如何實作這個方法,如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