Bagikan melalui


Metode ICorDebugThread::SetDebugState

Mengatur bendera yang menjelaskan status penelusuran kesalahan ICorDebugThread ini.

Syntax

HRESULT SetDebugState (
    [in] CorDebugThreadState state
);

Parameter-parameternya

state [di] Kombinasi bitwise dari nilai enumerasi CorDebugThreadState yang menentukan status debugging utas ini.

Komentar

SetDebugState mengatur status debug utas saat ini. ("Status debug saat ini" mewakili status debug jika proses akan dilanjutkan, bukan status aktual saat ini.) Nilai normal untuk ini adalah THREAD_RUN. Hanya debugger yang dapat memengaruhi status debug utas. Status debug berlangsung selama berlanjut, jadi jika Anda ingin menyimpan utas THREAD_SUSPENDed selama beberapa berlanjut, Anda dapat mengaturnya sekali dan setelah itu tidak perlu khawatir tentang hal itu. Menangguhkan utas dan melanjutkan proses dapat menyebabkan kebuntuan, meskipun biasanya tidak mungkin. Ini adalah kualitas utas dan proses intrinsik dan dirancang. Debugger dapat secara asinkron memutus dan melanjutkan utas untuk memecah kebuntuan. Jika status pengguna utas menyertakan USER_UNSAFE_POINT, maka utas dapat memblokir pengumpulan sampah (GC). Ini berarti utas yang ditangguhkan memiliki kemungkinan yang jauh lebih tinggi untuk menyebabkan kebuntuan. Ini mungkin tidak memengaruhi peristiwa debug yang sudah diantrekan. Dengan demikian debugger harus menguras seluruh antrean peristiwa (dengan memanggil ICorDebugController::HasQueuedCallbacks) sebelum menangguhkan atau melanjutkan utas. Jika tidak, itu mungkin mendapatkan peristiwa pada utas yang diyakini telah ditangguhkan.

Persyaratan

Platform: Lihat Sistem operasi yang didukung .NET.

Header: CorDebug.idl, CorDebug.h

Perpustakaan: CorGuids.lib

Versi .NET: Tersedia sejak .NET Framework 1.0