IDebugExpression2::EvaluateAsync
Bu yöntem, ifadeyi zaman uyumsuz olarak değerlendirir.
Sözdizimi
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;
}