Freigeben über


ICorDebugThread::SetDebugState-Methode

Legt Flags fest, die den Debugstatus für diesen ICorDebugThread beschreiben.

Syntax

HRESULT SetDebugState (  
    [in] CorDebugThreadState state  
);  

Parameter

state
[in] Eine bitweise Kombination von CorDebugThreadState-Enumerationswerten, die den Debugstatus dieses Threads angeben.

Hinweise

SetDebugState legt den aktuellen Debugstatus des Threads fest. (Der „aktuelle Debugstatus“ repräsentiert den Debugstatus, wenn der Prozess fortgesetzt würde, nicht den tatsächlichen derzeitigen Status.) Der übliche Wert hierfür ist THREAD_RUN. Nur der Debugger kann den Debugstatus eines Threads beeinflussen. Der Debugstatus bleibt über mehrere Fortsetzungen hinweg erhalten. Wenn Sie also für einen Thread über mehrere Fortsetzungen hinweg den Status THREAD_SUSPEND beibehalten möchten, können Sie ihn einmal festlegen und müssen sich danach nicht mehr darum kümmern. Das Anhalten und Fortsetzen von Threads kann zu Deadlocks führen, auch wenn dies normalerweise unwahrscheinlich ist. Dies ist eine inhärente Eigenschaft von Threads und Prozessen und so vorgesehen. Ein Debugger kann die Threads asynchron anhalten und wieder aufnehmen, um den Deadlock aufzulösen. Wenn der Benutzerstatus des Threads USER_UNSAFE_POINT einschließt, dann kann der Thread eine Garbage Collection (GC) blockieren. Damit steigt die Wahrscheinlichkeit, dass der angehaltene Thread einen Deadlock verursacht. Dies hat möglicherweise keine Auswirkungen auf Debugereignisse, die bereits in die Warteschlange eingereiht wurden. Daher sollte ein Debugger die gesamte Ereigniswarteschlange (durch Aufruf von ICorDebugController::HasQueuedCallbacks) leeren, bevor er Threads anhält oder fortsetzt. Andernfalls werden möglicherweise Ereignisse für einen Thread gemeldet, von denen der Debugger annimmt, dass sie bereits angehalten wurden.

Anforderungen

Plattformen: Informationen finden Sie unter Systemanforderungen.

Header: CorDebug.idl, CorDebug.h

Bibliothek: CorGuids.lib

.NET Framework-Versionen: Seit Version 1.0 verfügbar