Sei sulla pagina 1di 12

24/09/12

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

Este artculo se tradujo de forma manual. Mueva el puntero sobre las frases del artculo para ver el texto original. Ms informacin.

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

Jerarqua 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 Descripcin

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 tamao de pila mximo para el subproceso. Thread(ThreadStart, Int32) Inicializa una nueva instancia de la clase Thread, especificando el tamao de pila mximo para el subproceso.
1/12

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

24/09/12

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

Arriba

Propiedades
Nombre
ApartmentState

Descripcin
Obsoleto. Obtiene o establece el estado de apartamento de este subproceso. Obtiene el contexto actual donde se est ejecutando el subproceso. Obtiene o establece la referencia cultural del subproceso actual. Obtiene o establece la entidad de seguridad del subproceso actual (de la seguridad basada en roles). Obtiene el subproceso actualmente en ejecucin. Obtiene o establece la referencia cultural actual utilizada por el administrador de recursos para buscar recursos especficos de la referencia cultural en tiempo de ejecucin. Obtiene un objeto ExecutionContext que contiene informacin sobre los distintos contextos del subproceso actual. Obtiene un valor que indica el estado de ejecucin del subproceso actual. Obtiene o establece un valor que indica si un subproceso es o no un subproceso en segundo plano.

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. ManagedThreadId Obtiene un identificador nico para el actual subproceso administrado. Obtiene o establece el nombre del subproceso. Obtiene o establece un valor que indica la prioridad de programacin de un subproceso. Obtiene un valor que contiene los estados del subproceso actual.

Name Priority

ThreadState Arriba

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

2/12

24/09/12

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

Mtodos
Nombre
Abort()

Descripcin
Produce una excepcin ThreadAbortException en el subproceso en el que se invoca, para iniciar el proceso de finalizacin del subproceso. Normalmente, una llamada a este mtodo finaliza el subproceso. Produce una excepcin ThreadAbortException en el subproceso en el que se invoca, para iniciar el proceso de finalizacin del subproceso, proporcionando al mismo tiempo informacin sobre excepciones relativa a la terminacin del subproceso. Normalmente, una llamada a este mtodo finaliza el subproceso. 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. 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. Notifica a un host que la ejecucin est a punto de entrar en una regin del cdigo donde los efectos de una anulacin del subproceso o de una excepcin no controlada podran constituir un riesgo para otras tareas del dominio de aplicaciones. Notifica a un host que el cdigo administrado est a punto de ejecutar instrucciones que dependen de la identidad del subproceso del sistema operativo fsico actual.

Abort(Object)

AllocateDataSlot

AllocateNamedDataSlot

BeginCriticalRegion

BeginThreadAffinity

DisableComObjectEagerCleanup Desactiva la limpieza automtica de contenedores RCW (Runtime Callable Wrappers) para el subproceso actual. EndCriticalRegion Notifica a un host que la ejecucin est a punto de entrar en una regin de cdigo donde los efectos de una anulacin del subproceso o de una excepcin no controlada se limitan a la tarea actual.
3/12

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

24/09/12

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

EndThreadAffinity

Notifica a un host que el cdigo administrado ha terminado de ejecutar instrucciones que dependen de la identidad del subproceso del sistema operativo fsico actual.

Equals(Object)

Determina si el objeto Object especificado es igual al objeto Object actual. (Se hereda de Object). Libera todos los recursos utilizados por la clase CriticalFinalizerObject. (Se hereda de CriticalFinalizerObject). En XNA Framework 3.0, este miembro se hereda de Object.Finalize(). En Biblioteca de clases portable Biblioteca de clases portable, este miembro se hereda de Object.Finalize().

Finalize

FreeNamedDataSlot

Elimina la asociacin 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. Devuelve un valor ApartmentState que indica el estado de tipo apartamento. Obsoleto. Devuelve un objeto CompressedStack que se puede utilizar para capturar la pila correspondiente al subproceso actual. Recupera el valor de la posicin especificada en el subproceso actual, dentro del dominio actual del subproceso actual. Para mejorar el rendimiento, en su lugar use campos marcados con el atributo ThreadStaticAttribute. Devuelve el dominio actual en el que se est ejecutando el subproceso actual. Devuelve un identificador nico del dominio de la aplicacin. Devuelve un cdigo hash para el subproceso actual. (Invalida a Object.GetHashCode()). En XNA Framework 3.0, este miembro se hereda de Object.GetHashCode().

GetApartmentState

GetCompressedStack

GetData

GetDomain

GetDomainID

GetHashCode

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

4/12

24/09/12

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

En Biblioteca de clases portable Biblioteca de clases portable, este miembro se hereda de Object.GetHashCode(). GetNamedDataSlot Busca una ranura de datos con nombre. Para mejorar el rendimiento, en su lugar use campos marcados con el atributo ThreadStaticAttribute. Obtiene el objeto Type de la instancia actual. (Se hereda de Object). Anula un subproceso que se encuentra en estado de subproceso WaitSleepJoin. Bloquea el subproceso de la llamada hasta que un subproceso finaliza, pero contina realizando suministro de SendMessage y COM estndar. Bloquea el subproceso de llamada hasta que finaliza un subproceso o transcurre el tiempo especificado, pero contina realizando el suministro de SendMessage y COM estndar. Bloquea el subproceso de llamada hasta que finaliza un subproceso o transcurre el tiempo especificado, pero contina realizando el suministro de SendMessage y COM estndar. Crea una copia superficial del objeto Object actual. (Se hereda de Object). 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 despus de los accesos a memoria que siguen a la llamada a MemoryBarrier. Anula un mtodo Abort solicitado para el subproceso actual. Obsoleto. Reanuda el subproceso que ha sido suspendido. Establece el estado de tipo apartamento de un subproceso antes de iniciarse.

GetType

Interrupt

Join()

Join(Int32)

Join(TimeSpan)

MemberwiseClone

MemoryBarrier

ResetAbort

Resume

SetApartmentState

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

5/12

24/09/12

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

SetCompressedStack

Obsoleto. Aplica un objeto CompressedStack capturado al subproceso actual. Establece los datos de la ranura especificada en el subproceso actualmente en ejecucin, para el dominio actual de dicho subproceso. Para obtener un mejor rendimiento, utilice en su lugar los campos marcados con el atributo ThreadStaticAttribute.

SetData

SetProcessorAffinity

En .NET Compact Framework para Xbox 360, establece la afinidad del procesador para un subproceso administrado. La afinidad del procesador determina los procesadores en los que se ejecuta el subproceso. Suspende el subproceso actual durante un perodo de tiempo especificado. Bloquea el subproceso actual durante un perodo de tiempo especificado. Hace que un subproceso espere durante el perodo de tiempo definido por el parmetro iterations. Hace que el sistema operativo cambie el estado de la instancia actual a ThreadState.Running. Hace que el sistema operativo cambie el estado de la instancia actual a ThreadState.Running y, opcionalmente, proporciona un objeto que contiene datos para su uso por el mtodo que el subproceso ejecuta. Obsoleto. Suspende el subproceso y, si ste ya se ha suspendido, no tiene efecto alguno. Devuelve una cadena que representa el objeto actual. (Se hereda de Object). Establece el estado de tipo apartamento de un subproceso antes de iniciarse. Lee el valor de un campo. El valor es el ltimo que haya escrito cualquier procesador de un equipo, independientemente del nmero de procesadores y del estado de la cach del procesador. Lee el valor de un campo. El valor es el ltimo que
6/12

Sleep(Int32)

Sleep(TimeSpan)

SpinWait

Start()

Start(Object)

Suspend

ToString

TrySetApartmentState

VolatileRead(Byte)

VolatileRead(Double)
msdn.microsoft.com/es-es/library /sy stem.threading.thread.aspx

24/09/12

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

haya escrito cualquier procesador de un equipo, independientemente del nmero de procesadores y del estado de la cach del procesador. VolatileRead(Int16) Lee el valor de un campo. El valor es el ltimo que haya escrito cualquier procesador de un equipo, independientemente del nmero de procesadores y del estado de la cach del procesador. Lee el valor de un campo. El valor es el ltimo que haya escrito cualquier procesador de un equipo, independientemente del nmero de procesadores y del estado de la cach del procesador. Lee el valor de un campo. El valor es el ltimo que haya escrito cualquier procesador de un equipo, independientemente del nmero de procesadores y del estado de la cach del procesador. Lee el valor de un campo. El valor es el ltimo que haya escrito cualquier procesador de un equipo, independientemente del nmero de procesadores y del estado de la cach del procesador. Lee el valor de un campo. El valor es el ltimo que haya escrito cualquier procesador de un equipo, independientemente del nmero de procesadores y del estado de la cach del procesador. Lee el valor de un campo. El valor es el ltimo que haya escrito cualquier procesador de un equipo, independientemente del nmero de procesadores y del estado de la cach del procesador. Lee el valor de un campo. El valor es el ltimo que haya escrito cualquier procesador de un equipo, independientemente del nmero de procesadores y del estado de la cach del procesador. Lee el valor de un campo. El valor es el ltimo que haya escrito cualquier procesador de un equipo, independientemente del nmero de procesadores y del estado de la cach del procesador. Lee el valor de un campo. El valor es el ltimo que haya escrito cualquier procesador de un equipo, independientemente del nmero de procesadores y del estado de la cach del procesador.

VolatileRead(Int32)

VolatileRead(Int64)

VolatileRead(IntPtr)

VolatileRead(Object)

VolatileRead(SByte)

VolatileRead(Single)

VolatileRead(UInt16)

VolatileRead(UInt32)

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

7/12

24/09/12

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

VolatileRead(UInt64)

Lee el valor de un campo. El valor es el ltimo que haya escrito cualquier procesador de un equipo, independientemente del nmero de procesadores y del estado de la cach del procesador.

VolatileRead(UIntPtr)

Lee el valor de un campo. El valor es el ltimo que haya escrito cualquier procesador de un equipo, independientemente del nmero de procesadores y del estado de la cach del procesador. 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, de manera que el valor sea visible para todos los procesadores del equipo. 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, de manera que el valor sea visible para todos los procesadores del equipo. 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, de manera que el valor sea visible para todos los procesadores del equipo. 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, de manera que el valor sea visible para todos los procesadores del equipo. 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, de manera que el valor sea visible para todos los
8/12

VolatileWrite(Byte, Byte)

VolatileWrite(Double, Double)

VolatileWrite(Int16, Int16)

VolatileWrite(Int32, Int32)

VolatileWrite(Int64, Int64)

VolatileWrite(IntPtr, IntPtr)

VolatileWrite(Object, Object)

VolatileWrite(SByte, SByte)

VolatileWrite(Single, Single)

VolatileWrite(UInt16, UInt16)

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

24/09/12

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

procesadores del equipo. VolatileWrite(UInt32, UInt32) 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, de manera que el valor sea visible para todos los procesadores del equipo.

VolatileWrite(UInt64, UInt64)

VolatileWrite(UIntPtr, UIntPtr)

Escribe inmediatamente un valor en un campo, de manera que el valor sea visible para todos los procesadores del equipo. Hace que el subproceso que realiza la llamada proporcione la ejecucin a otro subproceso que est listo para ejecutarse en el procesador actual. El sistema operativo selecciona el subproceso al que se va a proporcionar la ejecucin.

Yield

Arriba

Implementaciones explcitas de interfaces


Nombre
_Thread.GetIDsOfNames

Descripcin
Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envo. Recupera la informacin de tipo de un objeto, que se puede utilizar despus para obtener la informacin de tipo de una interfaz.

_Thread.GetTypeInfo

_Thread.GetTypeInfoCount Recupera el nmero de interfaces de informacin de tipo que proporciona un objeto (0 1). _Thread.Invoke Arriba Proporciona acceso a las propiedades y los mtodos expuestos por un objeto.

Comentarios
Un proceso puede crear uno o varios subprocesos para ejecutar una parte del cdigo de programa asociado al proceso. Utilice un delegado ThreadStart o el delegado ParameterizedThreadStart para especificar el cdigo del programa ejecutado por un subproceso. El delegado ParameterizedThreadStart permite pasar datos al procedimiento de subproceso. A lo largo de su existencia, un subproceso siempre se encuentra en uno o ms estados definidos por ThreadState. Se puede solicitar un nivel de prioridad de programacin (tal y como lo define ThreadPriority) para un subproceso, pero no se garantiza que el sistema operativo lo conceda.
msdn.microsoft.com/es-es/library /sy stem.threading.thread.aspx 9/12

24/09/12

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

GetHashCode proporciona identificacin a los subprocesos administrados. Mientras dure el subproceso, no coincidir con el valor de ningn otro subproceso, independientemente del dominio de aplicacin del que se obtenga el valor.

Nota

Un ThreadId del sistema operativo no tiene relacin fija con un subproceso administrado, puesto que un host no administrado puede controlar la relacin entre los subprocesos administrados y los no administrados. Concretamente, un host sofisticado puede utilizar la API Hosting de CLR para programar muchos subprocesos administrados en el mismo subproceso del sistema operativo, o mover un subproceso administrado de unos subprocesos de sistema operativo a otros. No es necesario conservar una referencia a un objeto Thread una vez que se ha iniciado el subproceso. El subproceso contina ejecutndose hasta que se completa el procedimiento de subproceso.

Importante
Comenzando con .NET Framework 4, se cambia el comportamiento de algunos constructores de subproceso: nicamente el cdigo de plena confianza puede establecer el tamao de pila mximo en un valor que es mayor que el tamao de pila predeterminado (1 megabyte). Si un valor mayor se especifica cuando el cdigo se est ejecutando con confianza parcial, se omite el valor mayor y se utiliza el tamao de pila predeterminado. No se produce ninguna excepcin. El cdigo en cualquier nivel de confianza puede establecer el tamao de pila mximo en un valor que es menor que el tamao de pila predeterminado.

Ejemplos
En el siguiente ejemplo de cdigo se muestra la funcionalidad de un subproceso simple. C# C++ VB

uigSse; sn ytm uigSse.hedn; sn ytmTraig / Sml traigseai: Satasai mto rnig / ipe hedn cnro tr ttc ehd unn / o ascn tra. / n eod hed pbi casTraEape{ ulc ls hedxml / TeTraPo mto i cle we tetra sat. / h hedrc ehd s ald hn h hed trs / I lostntms wiigt tecnoeadyedn / t op e ie, rtn o h osl n ilig / ters o istm sieec tm,adte ed. / 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;i+ { o it ; 0 +) CnoeWieie"hedrc {},i; osl.rtLn(TraPo: 0" ) / Yedters o tetm sie / il h et f h ie lc. Tra.le() hedSep0; } } pbi sai vi Mi( { ulc ttc od an)
msdn.microsoft.com/es-es/library /sy stem.threading.thread.aspx 10/12

24/09/12

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

CnoeWieie"antra:Satascn tra.) osl.rtLn(Mi hed tr eod hed"; / 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. C smlfe teceto o ti dlgt. / hed # ipiis h rain f hs eeae Tra t=nwTra(e TraSatTraPo); hed e hednw hedtr(hedrc) / SatTraPo. Nt ta o auircso,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. UcmetteTra.le ta / s repe r ils nomn h hedSep ht / flostSat)t setedfeec. / olw .tr( o e h ifrne tSat) .tr(; /Tra.le() /hedSep0; fr(n i=0 i<4 i+ { o it ; ; +) CnoeWieie"antra:D sm wr.) osl.rtLn(Mi hed o oe ok"; Tra.le() hedSep0; } CnoeWieie"antra:Cl Ji(,t wi utlTraPo ed.) osl.rtLn(Mi hed al on) o at ni hedrc ns"; tJi(; .on) CnoeWieie"antra:TraPo.onhsrtre. PesEtrt edp osl.rtLn(Mi hed hedrcJi a eund rs ne o n rga.) orm"; CnoeRaLn(; osl.edie) } }

Este cdigo genera el siguiente resultado:

[B C+ C] V, +, # Mi tra:Satascn tra. an hed tr eod hed Mi tra:D sm wr. an hed o oe ok TraPo:0 hedrc Mi tra:D sm wr. an hed o oe ok TraPo:1 hedrc Mi tra:D sm wr. an hed o oe ok TraPo:2 hedrc Mi tra:D sm wr. an hed o oe ok TraPo:3 hedrc Mi tra:Cl Ji(,t wi utlTraPo ed. 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.onhsrtre. PesEtrt edporm an hed hedrcJi a eund rs ne o n rga.

Informacin de versin
.NET Framework Compatible con: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0 .NET Framework Client Profile
msdn.microsoft.com/es-es/library /sy stem.threading.thread.aspx 11/12

24/09/12

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

Compatible con: 4, 3.5 SP1 Biblioteca de clases portable Compatible con: Biblioteca de clases portable

Plataformas
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium) .NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Seguridad para subprocesos


Este tipo es seguro para la ejecucin de subprocesos.

Vea tambin
Referencia System.Threading (Espacio de nombres) Otros recursos Subprocesos y subprocesamiento Utilizar subprocesos y subprocesamiento

Le ha resultado til?

No

Contenido de la comunidad
2012 Microsoft. Reservados todos los derechos.

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

12/12

Potrebbero piacerti anche