Thread Clase

Definición

Crea y controla un subproceso, establece su prioridad y obtiene su estado.

public ref class Thread sealed : System::Runtime::ConstrainedExecution::CriticalFinalizerObject
public ref class Thread sealed
public ref class Thread sealed : System::Runtime::InteropServices::_Thread
public ref class Thread sealed : System::Runtime::ConstrainedExecution::CriticalFinalizerObject, System::Runtime::InteropServices::_Thread
public sealed class Thread : System.Runtime.ConstrainedExecution.CriticalFinalizerObject
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class Thread
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class Thread : System.Runtime.InteropServices._Thread
[System.Runtime.InteropServices.ComVisible(true)]
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class Thread : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, System.Runtime.InteropServices._Thread
type Thread = class
    inherit CriticalFinalizerObject
[<System.Runtime.InteropServices.ComVisible(true)>]
type Thread = class
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type Thread = class
    interface _Thread
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type Thread = class
    inherit CriticalFinalizerObject
    interface _Thread
Public NotInheritable Class Thread
Inherits CriticalFinalizerObject
Public NotInheritable Class Thread
Public NotInheritable Class Thread
Implements _Thread
Public NotInheritable Class Thread
Inherits CriticalFinalizerObject
Implements _Thread
Herencia
Herencia
Thread
Atributos
Implementaciones

Comentarios

Para obtener más información sobre esta API, consulte Comentarios complementarios de la API para Subproceso.

Constructores

Thread(ParameterizedThreadStart)

Inicializa una nueva instancia de la clase Thread, especificando un delegado que permite pasar un objeto al subproceso cuando este último se inicia.

Thread(ParameterizedThreadStart, Int32)

Inicializa una nueva instancia de la clase Thread y, para ello, especifica un delegado que permite pasar un objeto al subproceso cuando este último se inicia; además, especifica el tamaño de pila máximo para el subproceso.

Thread(ThreadStart)

Inicializa una nueva instancia de la clase Thread.

Thread(ThreadStart, Int32)

Inicializa una nueva instancia de la clase Thread, especificando el tamaño de pila máximo para el subproceso.

Propiedades

ApartmentState
Obsoletos.
Obsoletos.

Obtiene o establece el estado de apartamento de este subproceso.

CurrentContext

Obtiene el contexto actual donde se está ejecutando el subproceso.

CurrentCulture

Obtiene o establece la referencia cultural del subproceso actual.

CurrentPrincipal

Obtiene o establece la entidad de seguridad actual del subproceso (de la seguridad basada en roles).

CurrentThread

Obtiene el subproceso actualmente en ejecución.

CurrentUICulture

Obtiene o establece la referencia cultural actual utilizada por el administrador de recursos para buscar recursos específicos de la referencia cultural en tiempo de ejecución.

ExecutionContext

Obtiene un objeto ExecutionContext que contiene información sobre los distintos contextos del subproceso actual.

IsAlive

Obtiene un valor que indica el estado de ejecución del subproceso actual.

IsBackground

Obtiene o establece un valor que indica si un subproceso es o no un subproceso en segundo plano.

IsThreadPoolThread

Obtiene un valor que indica si un subproceso pertenece al grupo de subprocesos administrados o no.

ManagedThreadId

Obtiene un identificador único para el actual subproceso administrado.

Name

Obtiene o establece el nombre del subproceso.

Priority

Obtiene o establece un valor que indica la prioridad de programación de un subproceso.

ThreadState

Obtiene un valor que contiene los estados del subproceso actual.

Métodos

Abort()
Obsoletos.

Produce una excepción ThreadAbortException en el subproceso en el que se invoca, para iniciar el proceso de finalización del subproceso. Normalmente, una llamada a este método finaliza el subproceso.

Abort(Object)
Obsoletos.

Produce una excepción ThreadAbortException en el subproceso en el que se invoca, para iniciar el proceso de finalización del subproceso, proporcionando al mismo tiempo información sobre excepciones relativa a la terminación del subproceso. Normalmente, una llamada a este método finaliza el subproceso.

AllocateDataSlot()

Asigna una ranura de datos sin nombre en todos los subprocesos. Para mejorar el rendimiento, en su lugar use campos marcados con el atributo ThreadStaticAttribute.

AllocateNamedDataSlot(String)

Asigna una ranura de datos con nombre en todos los subprocesos. Para mejorar el rendimiento, en su lugar use campos marcados con el atributo ThreadStaticAttribute.

BeginCriticalRegion()

Notifica a un host que la ejecución está a punto de entrar en una región del código donde los efectos de una anulación del subproceso o de una excepción no controlada podrían constituir un riesgo para otras tareas del dominio de aplicaciones.

BeginThreadAffinity()

Notifica a un host que el código administrado está a punto de ejecutar instrucciones que dependen de la identidad del subproceso del sistema operativo físico actual.

DisableComObjectEagerCleanup()

Desactiva la limpieza automática de contenedores RCW (Runtime Callable Wrappers) para el subproceso actual.

EndCriticalRegion()

Notifica a un host que la ejecución está a punto de entrar en una región de código donde los efectos de una anulación del subproceso o de una excepción no controlada se limitan a la tarea actual.

EndThreadAffinity()

Notifica a un host que el código administrado ha terminado de ejecutar instrucciones que dependen de la identidad del subproceso del sistema operativo físico actual.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
Finalize()

Se asegura de que los recursos se liberan y que se llevan a cabo otras operaciones de limpieza cuando el recolector de elementos no utilizados recupere el objeto Thread.

FreeNamedDataSlot(String)

Elimina la asociación entre un nombre y una ranura en todos los subprocesos del proceso. Para mejorar el rendimiento, en su lugar use campos marcados con el atributo ThreadStaticAttribute.

GetApartmentState()

Devuelve un valor ApartmentState que indica el estado del apartamento.

GetCompressedStack()
Obsoletos.
Obsoletos.

Devuelve un objeto CompressedStack que se puede utilizar para capturar la pila correspondiente al subproceso actual.

GetCurrentProcessorId()

Obtiene un identificador que se usa para indicar en qué procesador se ejecuta el subproceso actual.

GetData(LocalDataStoreSlot)

Recupera el valor de la ranura especificada en el subproceso actual, dentro del dominio actual del subproceso. Para mejorar el rendimiento, en su lugar use campos marcados con el atributo ThreadStaticAttribute.

GetDomain()

Devuelve el dominio en el que se está ejecutando el subproceso actual.

GetDomainID()

Devuelve un identificador único del dominio de la aplicación.

GetHashCode()

Devuelve un código hash para el subproceso actual.

GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetNamedDataSlot(String)

Busca una ranura de datos con nombre. Para mejorar el rendimiento, en su lugar use campos marcados con el atributo ThreadStaticAttribute.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
Interrupt()

Interrumpe un subproceso que se encuentra en estado de subproceso WaitSleepJoin.

Join()

Bloquea el subproceso de llamada hasta que el subproceso representado por esta instancia finaliza, pero continúa bombeando SendMessage y COM estándar.

Join(Int32)

Bloquea el subproceso de llamada hasta que el subproceso representado por esta instancia finaliza o transcurre el tiempo especificado, pero continúa bombeando SendMessage y COM estándar.

Join(TimeSpan)

Bloquea el subproceso de llamada hasta que el subproceso representado por esta instancia finaliza o transcurre el tiempo especificado, pero continúa bombeando SendMessage y COM estándar.

MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
MemoryBarrier()

Sincroniza el acceso a la memoria de la siguiente forma: el procesador que ejecuta el subproceso actual no puede reordenar las instrucciones de forma que los accesos a la memoria anteriores a la llamada a MemoryBarrier() se ejecuten después de los accesos a memoria que siguen a la llamada a MemoryBarrier().

ResetAbort()
Obsoletos.

Cancela un método Abort(Object) solicitado para el subproceso actual.

Resume()
Obsoletos.
Obsoletos.
Obsoletos.

Reanuda un subproceso que se ha suspendido.

SetApartmentState(ApartmentState)

Establece el estado del apartamento de un subproceso antes de iniciarse.

SetCompressedStack(CompressedStack)
Obsoletos.
Obsoletos.

Aplica un objeto CompressedStack capturado al subproceso actual.

SetData(LocalDataStoreSlot, Object)

Establece los datos de la ranura especificada en el subproceso actualmente en ejecución, para el dominio actual de dicho subproceso. Para obtener un mejor rendimiento, utilice en su lugar los campos marcados con el atributo ThreadStaticAttribute.

Sleep(Int32)

Suspende el subproceso actual durante el número de milisegundos especificado.

Sleep(TimeSpan)

Suspende el subproceso actual durante la cantidad de tiempo especificada.

SpinWait(Int32)

Hace que un subproceso espere el número de veces definido por el parámetro iterations.

Start()

Hace que el sistema operativo cambie el estado de la instancia actual a Running.

Start(Object)

Hace que el sistema operativo cambie el estado de la instancia actual a Running; también puede proporcionar un objeto que contiene datos para que los use el método ejecutado por el subproceso.

Suspend()
Obsoletos.
Obsoletos.
Obsoletos.

Suspende el subproceso o, si este ya se ha suspendido, no tiene efecto alguno.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
TrySetApartmentState(ApartmentState)

Establece el estado del apartamento de un subproceso antes de iniciarse.

UnsafeStart()

Hace que el sistema operativo cambie el estado de la instancia actual a Running.

UnsafeStart(Object)

Hace que el sistema operativo cambie el estado de la instancia actual a Running; también puede proporcionar un objeto que contiene datos para que los use el método ejecutado por el subproceso.

VolatileRead(Byte)

Lee el valor de un campo. En los sistemas que lo requieren, inserta una barrera de memoria que impide que el procesador reordene las operaciones de memoria del modo siguiente: si aparece una operación de lectura o de escritura tras este método en el código, el procesador no puede moverla antes de este método.

VolatileRead(Double)

Lee el valor de un campo. En los sistemas que lo requieren, inserta una barrera de memoria que impide que el procesador reordene las operaciones de memoria del modo siguiente: si aparece una operación de lectura o de escritura tras este método en el código, el procesador no puede moverla antes de este método.

VolatileRead(Int16)

Lee el valor de un campo. En los sistemas que lo requieren, inserta una barrera de memoria que impide que el procesador reordene las operaciones de memoria del modo siguiente: si aparece una operación de lectura o de escritura tras este método en el código, el procesador no puede moverla antes de este método.

VolatileRead(Int32)

Lee el valor de un campo. En los sistemas que lo requieren, inserta una barrera de memoria que impide que el procesador reordene las operaciones de memoria del modo siguiente: si aparece una operación de lectura o de escritura tras este método en el código, el procesador no puede moverla antes de este método.

VolatileRead(Int64)

Lee el valor de un campo. En los sistemas que lo requieren, inserta una barrera de memoria que impide que el procesador reordene las operaciones de memoria del modo siguiente: si aparece una operación de lectura o de escritura tras este método en el código, el procesador no puede moverla antes de este método.

VolatileRead(IntPtr)

Lee el valor de un campo. En los sistemas que lo requieren, inserta una barrera de memoria que impide que el procesador reordene las operaciones de memoria del modo siguiente: si aparece una operación de lectura o de escritura tras este método en el código, el procesador no puede moverla antes de este método.

VolatileRead(Object)

Lee el valor de un campo. En los sistemas que lo requieren, inserta una barrera de memoria que impide que el procesador reordene las operaciones de memoria del modo siguiente: si aparece una operación de lectura o de escritura tras este método en el código, el procesador no puede moverla antes de este método.

VolatileRead(SByte)

Lee el valor de un campo. En los sistemas que lo requieren, inserta una barrera de memoria que impide que el procesador reordene las operaciones de memoria del modo siguiente: si aparece una operación de lectura o de escritura tras este método en el código, el procesador no puede moverla antes de este método.

VolatileRead(Single)

Lee el valor de un campo. En los sistemas que lo requieren, inserta una barrera de memoria que impide que el procesador reordene las operaciones de memoria del modo siguiente: si aparece una operación de lectura o de escritura tras este método en el código, el procesador no puede moverla antes de este método.

VolatileRead(UInt16)

Lee el valor de un campo. En los sistemas que lo requieren, inserta una barrera de memoria que impide que el procesador reordene las operaciones de memoria del modo siguiente: si aparece una operación de lectura o de escritura tras este método en el código, el procesador no puede moverla antes de este método.

VolatileRead(UInt32)

Lee el valor de un campo. En los sistemas que lo requieren, inserta una barrera de memoria que impide que el procesador reordene las operaciones de memoria del modo siguiente: si aparece una operación de lectura o de escritura tras este método en el código, el procesador no puede moverla antes de este método.

VolatileRead(UInt64)

Lee el valor de un campo. En los sistemas que lo requieren, inserta una barrera de memoria que impide que el procesador reordene las operaciones de memoria del modo siguiente: si aparece una operación de lectura o de escritura tras este método en el código, el procesador no puede moverla antes de este método.

VolatileRead(UIntPtr)

Lee el valor de un campo. En los sistemas que lo requieren, inserta una barrera de memoria que impide que el procesador reordene las operaciones de memoria del modo siguiente: si aparece una operación de lectura o de escritura tras este método en el código, el procesador no puede moverla antes de este método.

VolatileWrite(Byte, Byte)

Escribe un valor en un campo. En los sistemas que lo requieren, inserta una barrera de memoria que impide que el procesador reordene las operaciones de memoria del modo siguiente: si aparece una operación de lectura o de escritura antes de este método en el código, el procesador no puede moverla después de este método.

VolatileWrite(Double, Double)

Escribe un valor en un campo. En los sistemas que lo requieren, inserta una barrera de memoria que impide que el procesador reordene las operaciones de memoria del modo siguiente: si aparece una operación de lectura o de escritura antes de este método en el código, el procesador no puede moverla después de este método.

VolatileWrite(Int16, Int16)

Escribe un valor en un campo. En los sistemas que lo requieren, inserta una barrera de memoria que impide que el procesador reordene las operaciones de memoria del modo siguiente: si aparece una operación de lectura o de escritura antes de este método en el código, el procesador no puede moverla después de este método.

VolatileWrite(Int32, Int32)

Escribe un valor en un campo. En los sistemas que lo requieren, inserta una barrera de memoria que impide que el procesador reordene las operaciones de memoria del modo siguiente: si aparece una operación de lectura o de escritura antes de este método en el código, el procesador no puede moverla después de este método.

VolatileWrite(Int64, Int64)

Escribe un valor en un campo. En los sistemas que lo requieren, inserta una barrera de memoria que impide que el procesador reordene las operaciones de memoria del modo siguiente: si aparece una operación de lectura o de escritura antes de este método en el código, el procesador no puede moverla después de este método.

VolatileWrite(IntPtr, IntPtr)

Escribe un valor en un campo. En los sistemas que lo requieren, inserta una barrera de memoria que impide que el procesador reordene las operaciones de memoria del modo siguiente: si aparece una operación de lectura o de escritura antes de este método en el código, el procesador no puede moverla después de este método.

VolatileWrite(Object, Object)

Escribe un valor en un campo. En los sistemas que lo requieren, inserta una barrera de memoria que impide que el procesador reordene las operaciones de memoria del modo siguiente: si aparece una operación de lectura o de escritura antes de este método en el código, el procesador no puede moverla después de este método.

VolatileWrite(SByte, SByte)

Escribe un valor en un campo. En los sistemas que lo requieren, inserta una barrera de memoria que impide que el procesador reordene las operaciones de memoria del modo siguiente: si aparece una operación de lectura o de escritura antes de este método en el código, el procesador no puede moverla después de este método.

VolatileWrite(Single, Single)

Escribe un valor en un campo. En los sistemas que lo requieren, inserta una barrera de memoria que impide que el procesador reordene las operaciones de memoria del modo siguiente: si aparece una operación de lectura o de escritura antes de este método en el código, el procesador no puede moverla después de este método.

VolatileWrite(UInt16, UInt16)

Escribe un valor en un campo. En los sistemas que lo requieren, inserta una barrera de memoria que impide que el procesador reordene las operaciones de memoria del modo siguiente: si aparece una operación de lectura o de escritura antes de este método en el código, el procesador no puede moverla después de este método.

VolatileWrite(UInt32, UInt32)

Escribe un valor en un campo. En los sistemas que lo requieren, inserta una barrera de memoria que impide que el procesador reordene las operaciones de memoria del modo siguiente: si aparece una operación de lectura o de escritura antes de este método en el código, el procesador no puede moverla después de este método.

VolatileWrite(UInt64, UInt64)

Escribe un valor en un campo. En los sistemas que lo requieren, inserta una barrera de memoria que impide que el procesador reordene las operaciones de memoria del modo siguiente: si aparece una operación de lectura o de escritura antes de este método en el código, el procesador no puede moverla después de este método.

VolatileWrite(UIntPtr, UIntPtr)

Escribe un valor en un campo. En los sistemas que lo requieren, inserta una barrera de memoria que impide que el procesador reordene las operaciones de memoria del modo siguiente: si aparece una operación de lectura o de escritura antes de este método en el código, el procesador no puede moverla después de este método.

Yield()

Hace que el subproceso que realiza la llamada ceda la ejecución a otro subproceso que está listo para ejecutarse en el procesador actual. El sistema operativo selecciona el subproceso al que se va a ceder la ejecución.

Implementaciones de interfaz explícitas

_Thread.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.

_Thread.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera la información de tipo de un objeto, que se puede usar después para obtener la información de tipo de una interfaz.

_Thread.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1).

_Thread.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Proporciona acceso a las propiedades y los métodos expuestos por un objeto.

Se aplica a

Seguridad para subprocesos

Este tipo es seguro para la ejecución de subprocesos.

Consulte también