Metodo ICorDebugThread::SetDebugState
Imposta i flag che descrivono lo stato di debug di questo oggetto ICorDebugThread.
Sintassi
HRESULT SetDebugState (
[in] CorDebugThreadState state
);
Parametri
state
[in] Combinazione bit per bit dei valori di enumerazione CorDebugThreadState che specificano lo stato di debug di questo thread.
Osservazioni:
SetDebugState
imposta lo stato di debug corrente del thread. (Lo "stato di debug corrente" rappresenta lo stato di debug se il processo deve essere continuato, non lo stato corrente effettivo. Il valore normale per questo valore è THREAD_RUN. Solo il debugger può influire sullo stato di debug di un thread. Gli stati di debug durano per continuare, quindi se si vuole mantenere un thread THREAD_SUSPENDed su più continui, è possibile impostarlo una volta e successivamente non è necessario preoccuparsi di esso. La sospensione dei thread e la ripresa del processo possono causare deadlock, anche se in genere è improbabile. Si tratta di una qualità intrinseca di thread e processi ed è in base alla progettazione. Un debugger può interrompere e riprendere in modo asincrono i thread per interrompere il deadlock. Se lo stato utente del thread include USER_UNSAFE_POINT, il thread potrebbe bloccare un'operazione di Garbage Collection (GC). Ciò significa che il thread sospeso ha una probabilità molto maggiore di causare un deadlock. Questo potrebbe non influire sugli eventi di debug già accodati. Pertanto, un debugger deve svuotare l'intera coda di eventi (chiamando ICorDebugController::HasQueuedCallbacks) prima di sospendere o riprendere i thread. Altrimenti potrebbe ricevere eventi su un thread che ritiene che sia già stato sospeso.
Requisiti
Piattaforme: vedere Requisiti di sistema.
Intestazione: CorDebug.idl, CorDebug.h
Libreria: CorGuids.lib
Versioni di .NET Framework: disponibili dalla versione 1.0