Bagikan melalui


IDebugExpression2::EvaluateAsync

Metode ini mengevaluasi ekspresi secara asinkron.

Sintaks

int EvaluateAsync(
    enum_EVALFLAGS       dwFlags,
    IDebugEventCallback2 pExprCallback
);

Parameter

dwFlags
[di] Kombinasi bendera dari enumerasi EVALFLAGS yang mengontrol evaluasi ekspresi.

pExprCallback
[di] Parameter ini selalu merupakan nilai null.

Tampilkan Nilai

Jika berhasil, tampilkan S_OK; jika tidak tampilkan kode galat. Kode kesalahan umumnya adalah:

Kesalahan Deskripsi
E_EVALUATE_BUSY_WITH_EVALUATION Ekspresi lain saat ini sedang dievaluasi, dan evaluasi ekspresi simultan tidak didukung.

Keterangan

Metode ini harus kembali segera setelah memulai evaluasi ekspresi. Ketika ekspresi berhasil dievaluasi, IDebugExpressionEvaluationCompleteEvent2 harus dikirim ke panggilan balik peristiwa IDebugEventCallback2 sebagaimana disediakan melalui Lampirkan atau Lampirkan.

Contoh

Contoh berikut menunjukkan cara menerapkan metode ini untuk objek sederhana CExpression yang mengimplementasikan antarmuka 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;
}

Baca juga