Aracılığıyla paylaş


IDebugExpression2::EvaluateAsync

Bu yöntem, ifadeyi zaman uyumsuz olarak değerlendirir.

Sözdizimi

int EvaluateAsync(
    enum_EVALFLAGS       dwFlags,
    IDebugEventCallback2 pExprCallback
);

Parametreler

dwFlags
[in] EVALFLAGS numaralandırmasından ifade değerlendirmesini denetleen bayrakların birleşimi.

pExprCallback
[in] Bu parametre her zaman null bir değerdir.

İade Değeri

Başarılı olursa döndürür S_OK; aksi takdirde bir hata kodu döndürür. Tipik bir hata kodu:

Hata Açıklama
E_EVALUATE_BUSY_WITH_EVALUATION Şu anda başka bir ifade değerlendiriliyor ve eşzamanlı ifade değerlendirmesi desteklenmiyor.

Açıklamalar

Bu yöntem, ifade değerlendirmesini başlattıktan hemen sonra döndürülmelidir. İfade başarıyla değerlendirildiğinde, Ekleme veya Ekleme aracılığıyla sağlanan IDebugEventCallback2 olay geri çağırmasına bir IDebugExpressionEvaluationCompleteEvent2 gönderilmelidir.

Örnek

Aşağıdaki örnek, IDebugExpression2 arabirimini uygulayan basit CExpression bir nesne için bu yöntemin nasıl uygulandığını gösterir.

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

Ayrıca bkz.