共用方式為


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

另請參閱