24/09/12

Thread (C lase) (S y stem.Threading)

Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.

Thread (Clase)
.NET Framework 4.5 Este tema aún no ha recibido ninguna valoración - Valorar este tema Crea y controla un subproceso, establece su prioridad y obtiene su estado.

Jerarquía de herencia
System.Object System.Runtime.ConstrainedExecution.CriticalFinalizerObject System.Threading.Thread Espacio de nombres: System.Threading Ensamblado: mscorlib (en mscorlib.dll)

Sintaxis
C# C++ F# VB [oVsbetrbt(re] CmiilAtiuetu) [lsItraetrbt(lsItraeyeNn) CasnefcAtiueCasnefcTp.oe] pbi sae casTra :CiiaFnlzrbet ulc eld ls hed rtcliaieOjc, _hed Tra El tipo Thread expone los siguientes miembros.

Constructores
Nombre Descripción

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(ThreadStart) Inicializa una nueva instancia de la clase Thread.

Thread(ParameterizedThreadStart, Inicializa una nueva instancia de la clase Int32) Thread, especificando un delegado que permite pasar un objeto al subproceso cuando éste último se inicia y especificando el tamaño de pila máximo para el subproceso. Thread(ThreadStart, Int32) Inicializa una nueva instancia de la clase Thread, especificando el tamaño de pila máximo para el subproceso.
1/12

msdn.microsoft.com/es-es/library /sy stem.threading.thread.aspx

aspx 2/12 . 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. ManagedThreadId Obtiene un identificador único para el actual subproceso administrado. Obtiene o establece un valor que indica si un subproceso es o no un subproceso en segundo plano. Obtiene o establece el nombre del subproceso.microsoft. Obtiene o establece la referencia cultural del subproceso actual. Obtiene o establece el estado de apartamento de este subproceso. Obtiene un valor que contiene los estados del subproceso actual.thread. CurrentContext CurrentCulture CurrentPrincipal CurrentThread CurrentUICulture ExecutionContext IsAlive IsBackground IsThreadPoolThread Obtiene un valor que indica si un subproceso pertenece al grupo de subprocesos administrados o no. Obtiene un objeto ExecutionContext que contiene información sobre los distintos contextos del subproceso actual. Obtiene el contexto actual donde se está ejecutando el subproceso.Threading) Arriba Propiedades Nombre ApartmentState Descripción Obsoleto. Obtiene el subproceso actualmente en ejecución.24/09/12 Thread (C lase) (S y stem. Obtiene un valor que indica el estado de ejecución del subproceso actual. Obtiene o establece la entidad de seguridad del subproceso actual (de la seguridad basada en roles). Obtiene o establece un valor que indica la prioridad de programación de un subproceso.threading. Name Priority ThreadState Arriba msdn.com/es-es/library /sy stem.

una llamada a este método finaliza el subproceso. Normalmente. Asigna una ranura de datos sin nombre en todos los subprocesos. en su lugar use campos marcados con el atributo ThreadStaticAttribute. Produce una excepción ThreadAbortException en el subproceso en el que se invoca. Abort(Object) AllocateDataSlot AllocateNamedDataSlot BeginCriticalRegion BeginThreadAffinity DisableComObjectEagerCleanup Desactiva la limpieza automática de contenedores RCW (Runtime Callable Wrappers) para el subproceso actual.24/09/12 Thread (C lase) (S y stem.microsoft. Para mejorar el rendimiento. Asigna una ranura de datos con nombre en todos los subprocesos. 3/12 msdn.Threading) Métodos Nombre Abort() Descripción Produce una excepción ThreadAbortException en el subproceso en el que se invoca. en su lugar use campos marcados con el atributo ThreadStaticAttribute.aspx . 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. 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. Normalmente. proporcionando al mismo tiempo información sobre excepciones relativa a la terminación del subproceso.com/es-es/library /sy stem. para iniciar el proceso de finalización del subproceso. para iniciar el proceso de finalización del subproceso. 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. Para mejorar el rendimiento. una llamada a este método finaliza el subproceso.threading.thread.

GetHashCode()).Finalize().0. Obsoleto. (Se hereda de Object). GetApartmentState GetCompressedStack GetData GetDomain GetDomainID GetHashCode msdn. Libera todos los recursos utilizados por la clase CriticalFinalizerObject.24/09/12 Thread (C lase) (S y stem. dentro del dominio actual del subproceso actual. Finalize FreeNamedDataSlot Elimina la asociación entre un nombre y una ranura. Para mejorar el rendimiento. En XNA Framework 3. En Biblioteca de clases portable Biblioteca de clases portable. en todos los subprocesos del proceso. Devuelve un valor ApartmentState que indica el estado de tipo apartamento.threading.Finalize(). En XNA Framework 3.Threading) 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. (Se hereda de CriticalFinalizerObject). este miembro se hereda de Object. en su lugar use campos marcados con el atributo ThreadStaticAttribute. en su lugar use campos marcados con el atributo ThreadStaticAttribute. Devuelve el dominio actual en el que se está ejecutando el subproceso actual. este miembro se hereda de Object.0.thread. este miembro se hereda de Object. Devuelve un identificador único del dominio de la aplicación.microsoft.com/es-es/library /sy stem. Devuelve un objeto CompressedStack que se puede utilizar para capturar la pila correspondiente al subproceso actual. Recupera el valor de la posición especificada en el subproceso actual. Devuelve un código hash para el subproceso actual. Equals(Object) Determina si el objeto Object especificado es igual al objeto Object actual. (Invalida a Object. Para mejorar el rendimiento.aspx 4/12 .GetHashCode().

Obsoleto.24/09/12 Thread (C lase) (S y stem. en su lugar use campos marcados con el atributo ThreadStaticAttribute. Bloquea el subproceso de la llamada hasta que un subproceso finaliza. este miembro se hereda de Object. pero continúa realizando suministro de SendMessage y COM estándar. Bloquea el subproceso de llamada hasta que finaliza un subproceso o transcurre el tiempo especificado. Crea una copia superficial del objeto Object actual. pero continúa realizando el suministro de SendMessage y COM estándar. (Se hereda de Object).GetHashCode(). GetNamedDataSlot Busca una ranura de datos con nombre. (Se hereda de Object).Threading) En Biblioteca de clases portable Biblioteca de clases portable. pero continúa realizando el suministro de SendMessage y COM estándar. Anula un subproceso que se encuentra en estado de subproceso WaitSleepJoin.threading.com/es-es/library /sy stem. Obtiene el objeto Type de la instancia actual. Para mejorar el rendimiento. Reanuda el subproceso que ha sido suspendido. Bloquea el subproceso de llamada hasta que finaliza un subproceso o transcurre el tiempo especificado. Establece el estado de tipo apartamento de un subproceso antes de iniciarse. Sincroniza el acceso a la memoria de la siguiente forma: el procesador que ejecuta el subproceso actual no puede reordenar 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.thread. Anula un método Abort solicitado para el subproceso actual.microsoft. GetType Interrupt Join() Join(Int32) Join(TimeSpan) MemberwiseClone MemoryBarrier ResetAbort Resume SetApartmentState msdn.aspx 5/12 .

SetData SetProcessorAffinity En . independientemente del número de procesadores y del estado de la caché del procesador. no tiene efecto alguno.24/09/12 Thread (C lase) (S y stem.microsoft. si éste ya se ha suspendido.aspx . opcionalmente.Running y.threading.Running. La afinidad del procesador determina los procesadores en los que se ejecuta el subproceso. El valor es el último que 6/12 Sleep(Int32) Sleep(TimeSpan) SpinWait Start() Start(Object) Suspend ToString TrySetApartmentState VolatileRead(Byte) VolatileRead(Double) msdn. Suspende el subproceso actual durante un período de tiempo especificado. para el dominio actual de dicho subproceso.com/es-es/library /sy stem. Establece el estado de tipo apartamento de un subproceso antes de iniciarse. Establece los datos de la ranura especificada en el subproceso actualmente en ejecución. Aplica un objeto CompressedStack capturado al subproceso actual. establece la afinidad del procesador para un subproceso administrado. utilice en su lugar los campos marcados con el atributo ThreadStaticAttribute. Bloquea el subproceso actual durante un período de tiempo especificado. Hace que el sistema operativo cambie el estado de la instancia actual a ThreadState. Devuelve una cadena que representa el objeto actual.NET Compact Framework para Xbox 360. Para obtener un mejor rendimiento.thread. Lee el valor de un campo. Lee el valor de un campo. (Se hereda de Object). Hace que el sistema operativo cambie el estado de la instancia actual a ThreadState.Threading) SetCompressedStack Obsoleto. Obsoleto. Hace que un subproceso espere durante el período de tiempo definido por el parámetro iterations. El valor es el último que haya escrito cualquier procesador de un equipo. Suspende el subproceso y. proporciona un objeto que contiene datos para su uso por el método que el subproceso ejecuta.

independientemente del número de procesadores y del estado de la caché del procesador. independientemente del número de procesadores y del estado de la caché del procesador. El valor es el último que haya escrito cualquier procesador de un equipo. VolatileRead(Int32) VolatileRead(Int64) VolatileRead(IntPtr) VolatileRead(Object) VolatileRead(SByte) VolatileRead(Single) VolatileRead(UInt16) VolatileRead(UInt32) msdn. independientemente del número de procesadores y del estado de la caché del procesador. Lee el valor de un campo.Threading) haya escrito cualquier procesador de un equipo. independientemente del número de procesadores y del estado de la caché del procesador. El valor es el último que haya escrito cualquier procesador de un equipo.thread. Lee el valor de un campo. Lee el valor de un campo. El valor es el último que haya escrito cualquier procesador de un equipo. independientemente del número de procesadores y del estado de la caché del procesador. El valor es el último que haya escrito cualquier procesador de un equipo. Lee el valor de un campo.threading.com/es-es/library /sy stem.24/09/12 Thread (C lase) (S y stem. El valor es el último que haya escrito cualquier procesador de un equipo. El valor es el último que haya escrito cualquier procesador de un equipo. Lee el valor de un campo.aspx 7/12 . Lee el valor de un campo. independientemente del número de procesadores y del estado de la caché del procesador. Lee el valor de un campo. independientemente del número de procesadores y del estado de la caché del procesador. independientemente del número de procesadores y del estado de la caché del procesador. El valor es el último que haya escrito cualquier procesador de un equipo. independientemente del número de procesadores y del estado de la caché del procesador. Lee el valor de un campo. VolatileRead(Int16) Lee el valor de un campo. El valor es el último que haya escrito cualquier procesador de un equipo. independientemente del número de procesadores y del estado de la caché del procesador.microsoft. El valor es el último que haya escrito cualquier procesador de un equipo.

aspx . de manera que el valor sea visible para todos los procesadores del equipo. de manera que el valor sea visible para todos los procesadores del equipo. Single) VolatileWrite(UInt16. independientemente del número de procesadores y del estado de la caché del procesador. Escribe inmediatamente un valor en un campo. independientemente del número de procesadores y del estado de la caché del procesador. Byte) VolatileWrite(Double.24/09/12 Thread (C lase) (S y stem. Escribe inmediatamente un valor en un campo. de manera que el valor sea visible para todos los 8/12 VolatileWrite(Byte.threading. UInt16) msdn. SByte) VolatileWrite(Single.thread. Escribe inmediatamente un valor en un campo. Escribe inmediatamente un valor en un campo. de manera que el valor sea visible para todos los procesadores del equipo. de manera que el valor sea visible para todos los procesadores del equipo. Escribe inmediatamente un valor en un campo. Int32) VolatileWrite(Int64. de manera que el valor sea visible para todos los procesadores del equipo.com/es-es/library /sy stem. Escribe inmediatamente un valor en un campo. de manera que el valor sea visible para todos los procesadores del equipo. Escribe inmediatamente un valor en un campo. VolatileRead(UIntPtr) Lee el valor de un campo. Int16) VolatileWrite(Int32. de manera que el valor sea visible para todos los procesadores del equipo.Threading) VolatileRead(UInt64) Lee el valor de un campo. Escribe inmediatamente un valor en un campo. Double) VolatileWrite(Int16. de manera que el valor sea visible para todos los procesadores del equipo. Int64) VolatileWrite(IntPtr. IntPtr) VolatileWrite(Object. Escribe inmediatamente un valor en un campo.microsoft. Escribe inmediatamente un valor en un campo. de manera que el valor sea visible para todos los procesadores del equipo. Object) VolatileWrite(SByte. El valor es el último que haya escrito cualquier procesador de un equipo. El valor es el último que haya escrito cualquier procesador de un equipo.

VolatileWrite(UInt32. _Thread. UIntPtr) Escribe inmediatamente un valor en un campo.microsoft.threading. de manera que el valor sea visible para todos los procesadores del equipo. Se puede solicitar un nivel de prioridad de programación (tal y como lo define ThreadPriority) para un subproceso. UInt32) Escribe inmediatamente un valor en un campo. Hace que el subproceso que realiza la llamada proporcione la ejecución a otro subproceso que está listo para ejecutarse en el procesador actual. pero no se garantiza que el sistema operativo lo conceda.aspx 9/12 . El sistema operativo selecciona el subproceso al que se va a proporcionar la ejecución. un subproceso siempre se encuentra en uno o más estados definidos por ThreadState. Yield Arriba Implementaciones explícitas de interfaces Nombre _Thread. de manera que el valor sea visible para todos los procesadores del equipo. Escribe inmediatamente un valor en un campo. UInt64) VolatileWrite(UIntPtr.Invoke Arriba Proporciona acceso a las propiedades y los métodos expuestos por un objeto.GetTypeInfoCount Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1).thread. de manera que el valor sea visible para todos los procesadores del equipo.GetIDsOfNames Descripción Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío. que se puede utilizar después para obtener la información de tipo de una interfaz. msdn.Threading) procesadores del equipo.com/es-es/library /sy stem. _Thread. Utilice un delegado ThreadStart o el delegado ParameterizedThreadStart para especificar el código del programa ejecutado por un subproceso.24/09/12 Thread (C lase) (S y stem. El delegado ParameterizedThreadStart permite pasar datos al procedimiento de subproceso.GetTypeInfo _Thread. A lo largo de su existencia. Comentarios Un proceso puede crear uno o varios subprocesos para ejecutar una parte del código de programa asociado al proceso. VolatileWrite(UInt64. Recupera la información de tipo de un objeto.

se omite el valor mayor y se utiliza el tamaño de pila predeterminado. El código en cualquier nivel de confianza puede establecer el tamaño de pila máximo en un valor que es menor que el tamaño de pila predeterminado.adte ed. independientemente del dominio de aplicación del que se obtenga el valor. Importante Comenzando con .24/09/12 Thread (C lase) (S y stem. Tra. / n eod hed pbi casTraEape{ ulc ls hedxml / TeTraPo mto i cle we tetra sat.le() hedSep0. se cambia el comportamiento de algunos constructores de subproceso: únicamente el código de plena confianza puede establecer el tamaño de pila máximo en un valor que es mayor que el tamaño de pila predeterminado (1 megabyte). Concretamente. puesto que un host no administrado puede controlar la relación entre los subprocesos administrados y los no administrados.thread.com/es-es/library /sy stem.i. no coincidirá con el valor de ningún otro subproceso. Ejemplos En el siguiente ejemplo de código se muestra la funcionalidad de un subproceso simple. } } pbi sai vi Mi( { ulc ttc od an) msdn. C# C++ VB uigSse.threading. osl.rtLn(TraPo: 0" ) / Yedters o tetm sie / il h et f h ie lc. / h hedrc ehd s ald hn h hed trs / I lostntms wiigt tecnoeadyedn / t op e ie.Threading) GetHashCode proporciona identificación a los subprocesos administrados. Mientras dure el subproceso. El subproceso continúa ejecutándose hasta que se completa el procedimiento de subproceso. No es necesario conservar una referencia a un objeto Thread una vez que se ha iniciado el subproceso. rtn o h osl n ilig / ters o istm sieec tm.microsoft. No se produce ninguna excepción.i+ { o it .NET Framework 4. sn ytm uigSse. sn ytmTraig / Sml traigseai: Satasai mto rnig / ipe hedn cnro tr ttc ehd unn / o ascn tra. o mover un subproceso administrado de unos subprocesos de sistema operativo a otros. Si un valor mayor se especifica cuando el código se está ejecutando con confianza parcial.aspx 10/12 . / h et f t ie lc ah ie n hn ns pbi sai vi TraPo( { ulc ttc od hedrc) fr(n i=0 i<1. un host sofisticado puede utilizar la API Hosting de CLR para programar muchos subprocesos administrados en el mismo subproceso del sistema operativo. 0 +) CnoeWieie"hedrc {}.hedn. Nota Un ThreadId del sistema operativo no tiene relación fija con un subproceso administrado.

0. an hed o oe ok TraPo:0 hedrc Mi tra:D sm wr.onhsrtre. an hed o oe ok TraPo:3 hedrc Mi tra:Cl Ji(. an hed o oe ok TraPo:1 hedrc Mi tra:D sm wr. 1.NET Framework Compatible con: 4. an hed al on) o at ni hedrc ns TraPo:4 hedrc TraPo:5 hedrc TraPo:6 hedrc TraPo:7 hedrc TraPo:8 hedrc TraPo:9 hedrc Mi tra:TraPo.) orm".threading.tr(. # Mi tra:Satascn tra. +) CnoeWieie"antra:D sm wr. / TecntutrfrteTra casrqie aTraSat / h osrco o h hed ls eurs hedtr / dlgt ta rpeet temto t b eeue o te / eeae ht ersns h ehd o e xctd n h / tra. 3.le() /hedSep0.0. PesEtrt edp osl. Información de versión .le() hedSep0.rtLn(Mi hed al on) o at ni hedrc ns".) osl. UcmetteTra.thread.t wi utlTraPo ed.le ta / s repe r ils nomn h hedSep ht / flostSat)t setedfeec.microsoft. /Tra. PesEtrt edporm an hed hedrcJi a eund rs ne o n rga. 3.com/es-es/library /sy stem. / hed # ipiis h rain f hs eeae Tra t=nwTra(e TraSatTraPo).tenw / tr hedrc oe ht n npoesr h e / tra de ntgtaypoesrtm utltemi tra / hed os o e n rcso ie ni h an hed / i pemtdo yed.0 .) osl.5. +.NET Framework Client Profile msdn.tr( o e h ifrne tSat) . fr(n i=0 i<4 i+ { o it .onhsrtre.5. 2. C smlfe teceto o ti dlgt.) osl.rtLn(Mi hed o oe ok".t wi utlTraPo ed. } CnoeWieie"antra:Cl Ji(.24/09/12 Thread (C lase) (S y stem. an hed o oe ok TraPo:2 hedrc Mi tra:D sm wr. . tJi(. 1. osl. / olw . CnoeRaLn(.Threading) CnoeWieie"antra:Satascn tra. 4. an hed tr eod hed Mi tra:D sm wr.aspx 11/12 . Tra. Nt ta o auircso.rtLn(Mi hed hedrcJi a eund rs ne o n rga.edie) } } Este código genera el siguiente resultado: [B C+ C] V.1. . hed e hednw hedtr(hedrc) / SatTraPo.rtLn(Mi hed tr eod hed".on) CnoeWieie"antra:TraPo.

Windows Vista SP2.Threading) Compatible con: 4. Windows Server 2008 (no se admite el rol Server Core).microsoft.thread.threading. Seguridad para subprocesos Este tipo es seguro para la ejecución de subprocesos. Reservados todos los derechos.24/09/12 Thread (C lase) (S y stem. 3.NET Framework.5 SP1 Biblioteca de clases portable Compatible con: Biblioteca de clases portable Plataformas Windows 8. no se admite Itanium) . Windows Server 2012.com/es-es/library /sy stem. Windows 7. Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores. vea Requisitos de sistema de . msdn.aspx 12/12 .NET Framework no admite todas las versiones de todas las plataformas. Vea también Referencia System.Threading (Espacio de nombres) Otros recursos Subprocesos y subprocesamiento Utilizar subprocesos y subprocesamiento ¿Le ha resultado útil? Sí No Contenido de la comunidad © 2012 Microsoft. Para obtener una lista de las versiones compatibles.