Compartir a través de


System.Threading (Espacios de nombres)

Los espacios de nombres System.Threading, System.Threading.Tasks y System.Threading.Tasks.DataFlow contienen tipos que habilitan la programación multiproceso y que simplifican la escritura de código simultáneo y asincrónico.

Este tema muestra los tipos en los espacios de nombres System.Threading, System.Threading.Tasks y System.Threading.Tasks.DataFlow que se incluyen en .NET para aplicaciones de la Tienda Windows o que se pueden instalar y usar para crear aplicaciones de Tienda Windows. Ten en cuenta que .NET para aplicaciones de la Tienda Windows no incluye todos los miembros de cada tipo. Para obtener información sobre los tipos individuales, consulta los temas vinculados. La documentación para un tipo indica qué miembros se incluyen en .NET para aplicaciones de la Tienda Windows.

Para instalar el espacio de nombres System.Threading.Tasks.Dataflow, abre el proyecto en Visual Studio 2012 o posterior, elige Administrar paquetes NuGet en el menú Proyecto y busca en línea el paquete Microsoft.Tpl.Dataflow.

System.Threading (espacio de nombres)

Tipos admitidos en .NET para aplicaciones de la Tienda Windows

Descripción

AbandonedMutexException

Excepción que se produce cuando un subproceso adquiere un objeto Mutex que otro subproceso ha abandonado al salir dejarlo libre.

AutoResetEvent

Notifica que se ha producido un evento a un subproceso en espera. Esta clase no puede heredarse.

Barrier

Habilita varias tareas para que colaboren en un algoritmo en paralelo en varias fases.

BarrierPostPhaseException

Excepción que se inicia cuando se produce un error en la acción posterior a la fase de Barrier.

CancellationToken

Propaga la notificación de que las operaciones deberían cancelarse.

CancellationTokenRegistration

Representa un delegado de devolución de llamada que se ha registrado con un CancellationToken.

CancellationTokenSource

Señala un objeto CancellationToken que debe cancelarse.

CountdownEvent

Representa una primitiva de sincronización que está señalada cuando su recuento alcanza el valor cero.

EventResetMode

Indica si un objeto EventWaitHandle se restablece automática o manualmente después de recibir una señal.

EventWaitHandle

Representa un evento de sincronización de subprocesos.

Interlocked

Proporciona operaciones atómicas para las variables compartidas por varios subprocesos.

LazyInitializer

Proporciona rutinas de inicialización diferida.

LazyThreadSafetyMode

Especifica cómo una instancia Lazy<T> sincroniza el acceso entre varios subprocesos.

LockRecursionException

Excepción que se inicia cuando la entrada recursiva en un bloqueo no es compatible con la directiva de recursión del bloqueo.

LockRecursionPolicy

Especifica si el mismo subproceso puede entrar varias veces en un bloqueo.

ManualResetEvent

Notifica que se ha producido un evento a uno o varios subprocesos en espera. Esta clase no puede heredarse.

ManualResetEventSlim

Proporciona una versión reducida de ManualResetEvent.

Monitor

Proporciona un mecanismo que sincroniza el acceso a los objetos.

Mutex

Primitiva de sincronización que puede usarse también para la sincronización entre procesos.

ReaderWriterLockSlim

Representa un bloqueo que se usa para administrar el acceso a un recurso y que permite que varios subprocesos lean o tengan acceso exclusivo a escritura.

Semaphore

Limita el número de subprocesos que pueden tener acceso a un recurso o grupo de recursos simultáneamente.

SemaphoreFullException

Excepción que se produce cuando se llama al método Release en un semáforo cuyo recuento ya se encuentra en el máximo.

SemaphoreSlim

Alternativa ligera a Semaphore que limita el número de subprocesos que pueden obtener acceso de forma simultánea a un recurso o a un grupo de recursos.

SendOrPostCallback

Representa un método al que hay que llamar cuando se va a enviar un mensaje a un contexto de sincronización.

SpinLock

Proporciona una primitiva de bloqueo de exclusión mutua donde un subproceso que intenta adquirir el bloqueo espera en un bucle y realiza comprobaciones repetidamente hasta que haya un bloqueo disponible.

SpinWait

Proporciona compatibilidad para la espera basada en ciclos.

SynchronizationContext

Proporciona la funcionalidad básica para difundir un contexto de sincronización en varios modelos de sincronización.

SynchronizationLockException

Excepción que se produce cuando un método requiere que el llamador sea propietario del bloqueo en un Monitor dado y un llamador al que no pertenece ese bloqueo llama al método.

ThreadLocal<T>

Proporciona almacenamiento local de los datos de un subproceso.

Timeout

Contiene las constantes que especifican intervalos de tiempo de espera infinitos. Esta clase no puede heredarse.

Volatile

Contiene los métodos para realizar operaciones de memoria volátil.

WaitHandle

Encapsula los objetos específicos del sistema operativo que esperan obtener un acceso exclusivo a los recursos compartidos.

WaitHandleCannotBeOpenedException

Excepción que se produce cuando se intenta abrir una Exclusión mutua del sistema o semáforo que no existe.

System.Threading.Tasks (espacio de nombres)

Tipos admitidos en .NET para aplicaciones de la Tienda Windows

Descripción

ConcurrentExclusiveSchedulerPair

Proporciona programadores de tareas simultáneos y exclusivos que se coordinan para ejecutar las tareas a la vez que garantizan que las tareas simultáneas puedan ejecutarse en paralelo y que las tareas excluyentes nunca lo hagan así.

Parallel

Proporciona compatibilidad con regiones y bucles paralelos.

ParallelLoopResult

Proporciona el estado de realización en la ejecución de un bucle paralelo.

ParallelLoopState

Habilita iteraciones de bucles paralelos para interactuar con otras iteraciones. La clase Parallel proporciona una instancia de esta clase para cada bucle; no se pueden crear instancias en el código de usuario.

ParallelOptions

Almacena las opciones que configuran el funcionamiento de los métodos en la clase Parallel.

Task

Representa una operación asincrónica.

Task<TResult>

Representa una operación asincrónica que puede devolver un valor.

TaskCanceledException

Representa una excepción usada para comunicar la cancelación de la tarea.

TaskCompletionSource<TResult>

Representa el extremo del productor de una Task<TResult> que no está enlazada a un delegado, de forma que proporciona acceso al extremo del consumidor a través de la propiedad TaskCompletionSource<T>.Task.

TaskContinuationOptions

Especifica el comportamiento de una tarea que se crea usando el método ContinueWith o Task<T>.ContinueWith.

TaskCreationOptions

Especifica las marcas que controlan el comportamiento opcional de la creación y ejecución de tareas.

TaskExtensions

Proporciona un conjunto de métodos estáticos (Shared en Visual Basic) para que funcionen con determinados tipos de instancias Task.

TaskFactory

Proporciona compatibilidad para crear y programar objetos Task.

TaskFactory<TResult>

Proporciona compatibilidad para crear y programar objetos Task<T>.

TaskScheduler

Representa un objeto que administra el trabajo de bajo nivel de poner en cola tareas en los subprocesos.

TaskSchedulerException

Representa una excepción que se usa para comunicar una operación no válida de un TaskScheduler.

TaskStatus

Representa la fase actual del ciclo de vida de una tarea.

UnobservedTaskExceptionEventArgs

Proporciona datos para el evento generado cuando una excepción errónea de la tarea pasa inadvertida.

System.Threading.Tasks.DataFlow (espacio de nombres)

Para instalar el espacio de nombres System.Threading.Tasks.Dataflow, abre el proyecto en Visual Studio 2012, elige Administrar paquetes NuGet en el menú Proyecto y busca en línea el paquete Microsoft.Tpl.Dataflow.

Tipos admitidos en .NET para aplicaciones de la Tienda Windows

Descripción

ActionBlock<TInput>

Proporciona un bloque de flujo de datos que invoca un delegado de Action<T> para cada elemento de datos recibido.

BatchBlock<T>

Proporciona un bloque de flujo de datos que procesa por lotes las entradas en las matrices.

BatchedJoinBlock<T1, T2>

Proporciona un bloque de flujo de datos que procesa por lotes un número especificado de entradas de tipos potencialmente distintos que se suministran a uno o más de sus destinos.

BatchedJoinBlock<T1, T2, T3>

Proporciona un bloque de flujo de datos que procesa por lotes un número especificado de entradas de tipos potencialmente distintos que se suministran a uno o más de sus destinos.

BroadcastBlock<T>

Proporciona un búfer para almacenar a lo sumo un elemento de cada vez, reemplazando cada mensaje con el siguiente a medida que van llegando. Los mensajes se difunden a todos los destinos vinculados; todos ellos pueden usar un clon del mensaje.

BufferBlock<T>

Proporciona un búfer para almacenar datos.

DataflowBlock

Proporciona un conjunto de métodos estáticos (Shared en Visual Basic) para que funcionen con bloques de flujo de datos.

DataflowBlockOptions

Proporciona las opciones usadas para configurar el procesamiento que realizan los bloques de flujo de datos.

DataflowLinkOptions

Proporciona las opciones usadas para configurar un vínculo entre bloques de flujo de datos.

DataflowMessageHeader

Proporciona un contenedor de atributos de datos para pasarlo entre los bloques de flujo de datos.

DataflowMessageStatus

Representa el estado de un elemento DataflowMessageHeader cuando se pasa entre bloques de flujo de datos.

ExecutionDataflowBlockOptions

Proporciona las opciones usadas para configurar el procesamiento realizado por los bloques de flujo de datos que procesan cada mensaje mediante la invocación de un delegado proporcionado por el usuario. Se trata de bloques de flujo de datos como ActionBlock<TInput> y TransformBlock<TInput, TOutput>.

GroupingDataflowBlockOptions

Proporciona las opciones usadas para configurar el procesamiento que realizan los bloques de flujo de datos que agrupan varios mensajes. Se trata de bloques de flujo de datos como JoinBlock<T1, T2> y BatchBlock<T>.

IDataflowBlock

Representa un bloque de flujo de datos.

IPropagatorBlock<TInput, TOutput>

Representa un bloque de flujo de datos que es tanto un destino como un origen de datos.

IReceivableSourceBlock<TOutput>

Representa un bloque de flujo de datos que admite la recepción de mensajes sin vincular.

ISourceBlock<TOutput>

Representa un bloque de flujo de datos que es un origen de datos.

ITargetBlock<TInput>

Representa un bloque de flujo de datos que es un destino de datos.

JoinBlock<T1, T2>

Proporciona un bloque de flujo de datos que combina varios orígenes de flujo de datos, que no son necesariamente del mismo tipo, donde se espera a que llegue un elemento para cada tipo antes de que todos queden libres de forma conjunta como una tupla que contiene un elemento por tipo.

JoinBlock<T1, T2, T3>

Proporciona un bloque de flujo de datos que combina varios orígenes de flujo de datos, que no son necesariamente del mismo tipo, donde se espera a que llegue un elemento para cada tipo antes de que todos queden libres de forma conjunta como una tupla que contiene un elemento por tipo.

TransformBlock<TInput, TOutput>

Proporciona un bloque de flujo de datos que invoca un delegado de Func<T, TResult> para cada elemento de datos recibido.

TransformManyBlock<TInput, TOutput>

Proporciona un bloque de flujo de datos que invoca un delegado de Func<T, TResult> para cada elemento de datos recibido.

WriteOnceBlock<T>

Proporciona un búfer para recibir y almacenar a lo sumo un elemento en una red de bloques de flujo de datos.

Vea también

Conceptos

API de .NET para aplicaciones de la Tienda Windows