Compartir a través de


ICorDebugThread::SetDebugState (Método)

Establece marcas que describen el estado de depuración de este ICorDebugThread.

Sintaxis

HRESULT SetDebugState (
    [in] CorDebugThreadState state
);

Parámetros

state [in] Combinación bit a bit de los valores de enumeración CorDebugThreadState que especifican el estado de depuración de este subproceso.

Comentarios

SetDebugState establece el estado de depuración actual del subproceso. (El "estado de depuración actual" representa el estado de depuración si el proceso se continuara, no el estado actual real). El valor normal para esto es THREAD_RUN. Solo el depurador puede afectar al estado de depuración de un subproceso. Los estados de depuración duran en continuaciones, por lo que si quiere mantener un subproceso THREAD_SUSPENDed en varias continuaciones, puede establecerlo una vez y después no tiene que preocuparse por él. Suspender subprocesos y reanudar el proceso puede provocar interbloqueos, aunque normalmente es poco probable. Se trata de una calidad intrínseca de subprocesos y procesos y es intencionado. Un depurador puede interrumpir y reanudar de forma asincrónica los subprocesos para interrumpir el interbloqueo. Si el estado de usuario del subproceso incluye USER_UNSAFE_POINT, el subproceso puede bloquear una recolección de elementos no utilizados (GC). Esto significa que el subproceso suspendido tiene una posibilidad mucho mayor de provocar un interbloqueo. Esto puede no afectar a los eventos de depuración que ya se encuentran en cola. Por lo tanto, un depurador debe purgar toda la cola de eventos (mediante una llamada a ICorDebugController::HasQueuedCallbacks) antes de suspender o reanudar subprocesos. De lo contrario, puede obtener eventos en un subproceso que cree que ya se ha suspendido.

Requisitos

Plataformas: Vea Requisitos de sistema.

Encabezado: CorDebug.idl, CorDebug.h

Biblioteca: CorGuids.lib

Versiones de .NET Framework: está disponible desde la versión 1.0