Thread Clase

Definición

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

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

Comentarios

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

Constructores

Nombre Description
Thread(ParameterizedThreadStart, Int32)

Inicializa una nueva instancia de la Thread clase , especificando un delegado que permite pasar un objeto al subproceso cuando se inicia el subproceso y especificando el tamaño máximo de pila para el subproceso.

Thread(ParameterizedThreadStart)

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

Thread(ThreadStart, Int32)

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

Thread(ThreadStart)

Inicializa una nueva instancia de la clase Thread.

Propiedades

Nombre Description
ApartmentState
Obsoletos.

Obtiene o establece el estado de apartamento de este subproceso.

CurrentContext

Obtiene el contexto actual en el que se ejecuta el subproceso.

CurrentCulture

Obtiene o establece la referencia cultural del subproceso actual.

CurrentPrincipal

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

CurrentThread

Obtiene el subproceso que se está ejecutando actualmente.

CurrentUICulture

Obtiene o establece la referencia cultural actual que usa Resource Manager para buscar recursos específicos de la referencia cultural en tiempo de ejecución.

ExecutionContext

Obtiene un ExecutionContext objeto 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 un subproceso en segundo plano o no.

IsThreadPoolThread

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

ManagedThreadId

Obtiene un identificador único para el subproceso administrado actual.

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

Nombre Description
Abort()

Genera un ThreadAbortException elemento en el subproceso en el que se invoca para comenzar el proceso de terminación del subproceso. Llamar a este método normalmente finaliza el subproceso.

Abort(Object)

Genera un ThreadAbortException elemento en el subproceso en el que se invoca, para comenzar el proceso de terminación del subproceso, al tiempo que proporciona información de excepción sobre la terminación del subproceso. Llamar a este método normalmente finaliza el subproceso.

AllocateDataSlot()

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

AllocateNamedDataSlot(String)

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

BeginCriticalRegion()

Notifica a un host que la ejecución está a punto de escribir una región de código en la que los efectos de una anulación de subprocesos o una excepción no controlada podrían poner en peligro otras tareas en el dominio de aplicación.

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 invocables en tiempo de ejecución (RCW) para el subproceso actual.

EndCriticalRegion()

Notifica a un host que la ejecución está a punto de escribir una región de código en la que los efectos de una anulación de subproceso o una excepción no controlada están limitados 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 al objeto actual.

(Heredado de Object)
Finalize()

Garantiza que los recursos se liberan y se realizan otras operaciones de limpieza cuando el recolector de elementos no utilizados reclama el Thread objeto.

FreeNamedDataSlot(String)

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

GetApartmentState()

Devuelve un ApartmentState valor que indica el estado del apartamento.

GetCompressedStack()
Obsoletos.

Devuelve un CompressedStack objeto que se puede usar para capturar la pila del subproceso actual.

GetCurrentProcessorId()

Obtiene un identificador usado para indicar en qué procesador se está ejecutando el subproceso actual.

GetData(LocalDataStoreSlot)

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

GetDomain()

Devuelve el dominio actual en el que se ejecuta el subproceso actual.

GetDomainID()

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

GetHashCode()

Devuelve un código hash para el subproceso actual.

GetHashCode()

Actúa como la función hash predeterminada.

(Heredado de Object)
GetNamedDataSlot(String)

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

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
Interrupt()

Interrumpe un subproceso que está en estado de WaitSleepJoin subproceso.

Join()

Bloquea el subproceso que realiza la llamada hasta que finaliza el subproceso representado por esta instancia, al tiempo que continúa realizando com estándar y SendMessage bombeo.

Join(Int32)

Bloquea el subproceso que realiza la llamada hasta que el subproceso representado por esta instancia finaliza o transcurre el tiempo especificado, mientras continúa realizando la bomba COM y SendMessage estándar.

Join(TimeSpan)

Bloquea el subproceso que realiza la llamada hasta que el subproceso representado por esta instancia finaliza o transcurre el tiempo especificado, mientras continúa realizando la bomba COM y SendMessage estándar.

MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
MemoryBarrier()

Sincroniza el acceso a la memoria de la siguiente manera: el procesador que ejecuta el subproceso actual no puede reordenar las instrucciones de forma que la memoria tenga acceso antes de la llamada a para MemoryBarrier() ejecutarse después de los accesos de memoria que siguen la llamada a MemoryBarrier().

ResetAbort()

Cancela una Abort(Object) solicitud para el subproceso actual.

Resume()
Obsoletos.
Obsoletos.

Reanuda un subproceso que se ha suspendido.

SetApartmentState(ApartmentState)

Establece el estado de apartamento de un subproceso antes de iniciarlo.

SetCompressedStack(CompressedStack)
Obsoletos.

Aplica un objeto capturado al subproceso CompressedStack actual.

SetData(LocalDataStoreSlot, Object)

Establece los datos de la ranura especificada en el subproceso que se está ejecutando actualmente, para el dominio actual de ese subproceso. Para mejorar el rendimiento, use campos marcados con el ThreadStaticAttribute atributo en su lugar.

Sleep(Int32)

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

Sleep(TimeSpan)

Suspende el subproceso actual durante la cantidad de tiempo especificada.

SpinWait(Int32)

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

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 Runningy, opcionalmente, proporciona un objeto que contiene datos que el método ejecuta el subproceso.

Suspend()
Obsoletos.
Obsoletos.

Suspende el subproceso o si el subproceso ya está suspendido, no tiene ningún efecto.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
TrySetApartmentState(ApartmentState)

Establece el estado de apartamento de un subproceso antes de iniciarlo.

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 de la siguiente manera: Si aparece una lectura o escritura después de este método en el código, el procesador no puede moverlo 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 de la siguiente manera: Si aparece una lectura o escritura después de este método en el código, el procesador no puede moverlo 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 de la siguiente manera: Si aparece una lectura o escritura después de este método en el código, el procesador no puede moverlo 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 de la siguiente manera: Si aparece una lectura o escritura después de este método en el código, el procesador no puede moverlo 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 de la siguiente manera: Si aparece una lectura o escritura después de este método en el código, el procesador no puede moverlo 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 de la siguiente manera: Si aparece una lectura o escritura después de este método en el código, el procesador no puede moverlo 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 de la siguiente manera: Si aparece una lectura o escritura después de este método en el código, el procesador no puede moverlo 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 de la siguiente manera: Si aparece una lectura o escritura después de este método en el código, el procesador no puede moverlo 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 de la siguiente manera: Si aparece una lectura o escritura después de este método en el código, el procesador no puede moverlo 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 de la siguiente manera: Si aparece una lectura o escritura después de este método en el código, el procesador no puede moverlo 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 de la siguiente manera: Si aparece una lectura o escritura después de este método en el código, el procesador no puede moverlo 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 de la siguiente manera: Si aparece una lectura o escritura después de este método en el código, el procesador no puede moverlo 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 de la siguiente manera: Si aparece una lectura o escritura después de este método en el código, el procesador no puede moverlo 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 de la siguiente manera: si aparece una lectura o 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 de la siguiente manera: si aparece una lectura o 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 de la siguiente manera: si aparece una lectura o 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 de la siguiente manera: si aparece una lectura o 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 de la siguiente manera: si aparece una lectura o 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 de la siguiente manera: si aparece una lectura o 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 de la siguiente manera: si aparece una lectura o 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 de la siguiente manera: si aparece una lectura o 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 de la siguiente manera: si aparece una lectura o 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 de la siguiente manera: si aparece una lectura o 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 de la siguiente manera: si aparece una lectura o 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 de la siguiente manera: si aparece una lectura o 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 de la siguiente manera: si aparece una lectura o 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 producir.

Implementaciones de interfaz explícitas

Nombre Description
_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 propiedades y métodos expuestos por un objeto .

Se aplica a

Seguridad para subprocesos

Este tipo es seguro para subprocesos.

Consulte también