System.Threading 命名空间

System.Threading、System.Threading.Tasks 和 System.Threading.Tasks.DataFlow 命名空间包含支持多线程编程并可简化并发和异步代码编写的类型。

本主题显示适用于 Windows 应用商店应用的 .NET 中包括的或可安装并用于创建 Windows 应用商店应用程序的 System.Threading、System.Threading.Tasks 和 System.Threading.Tasks.DataFlow 命名空间中的类型。请注意,适用于 Windows 应用商店应用的 .NET 不包含每个类型的所有成员。有关各个类型的信息,请参见链接的主题。类型的文档指示 适用于 Windows 应用商店应用的 .NET中包括哪些成员。

若要安装 System.Threading.Tasks.Dataflow 命名空间,请在 Visual Studio 2012 或更高版本中打开项目,从**“项目”菜单中选择“管理 NuGet 包”**,然后联机搜索 Microsoft.Tpl.Dataflow 包。

System.Threading 命名空间

适用于 Windows 应用商店应用的 .NET 中支持的类型

说明

AbandonedMutexException

当某个线程获取由另一个线程放弃(即在未释放的情况下退出)的 Mutex 对象时引发的异常。

AutoResetEvent

通知正在等待的线程已发生事件。无法继承此类。

Barrier

使多个任务能够采用并行方式依据某种算法在多个阶段中协同工作。

BarrierPostPhaseException

Barrier 阶段后操作失败时引发的异常。

CancellationToken

传播有关应取消操作的通知。

CancellationTokenRegistration

表示已向 CancellationToken 注册的回调委托。

CancellationTokenSource

通知 CancellationToken,告知其应被取消。

CountdownEvent

表示在计数变为零时处于有信号状态的同步基元。

EventResetMode

指示在接收信号后是自动重置 EventWaitHandle 还是手动重置。

EventWaitHandle

表示一个线程同步事件。

Interlocked

为多个线程共享的变量提供原子操作。

LazyInitializer

提供延迟初始化例程。

LazyThreadSafetyMode

指定 Lazy<T> 实例如何同步多个线程间的访问。

LockRecursionException

当进入锁定状态的递归与此锁定的递归策略不兼容时引发的异常。

LockRecursionPolicy

指定同一个线程是否可以多次进入一个锁定状态。

ManualResetEvent

通知一个或多个正在等待的线程已发生事件。无法继承此类。

ManualResetEventSlim

提供 ManualResetEvent 的简化版本。

Monitor

提供同步访问对象的机制。

Mutex

一个同步基元,也可用于进程间同步。

ReaderWriterLockSlim

表示用于管理资源访问的锁定状态,可实现多线程读取或进行独占式写入访问。

Semaphore

限制可同时访问某一资源或资源池的线程数。

SemaphoreFullException

对已经达到最大计数值的信号量调用 Release 方法时引发的异常。

SemaphoreSlim

对可同时访问资源或资源池的线程数加以限制的 Semaphore 的轻量替代。

SendOrPostCallback

表示在消息即将被调度到同步上下文时要调用的方法。

SpinLock

提供一个相互排斥锁基元,在该基元中,尝试获取锁的线程将在重复检查的循环中等待,直至该锁变为可用为止。

SpinWait

为基于自旋的等待提供支持。

SynchronizationContext

提供在各种同步模型中传播同步上下文的基本功能。

SynchronizationLockException

当某个方法要求调用方拥有给定 Monitor 上的锁并且该方法由不拥有该锁的调用方调用时引发的异常。

ThreadLocal<T>

提供数据的线程本地存储。

Timeout

包含指定无限超时间隔的常数。无法继承此类。

Volatile

包含用于执行可变内存操作的方法。

WaitHandle

封装等待对共享资源进行独占访问的操作系统特定的对象。

WaitHandleCannotBeOpenedException

当尝试打开不存在的系统 Mutex 或信号量时引发的异常。

System.Threading.Tasks 命名空间

适用于 Windows 应用商店应用的 .NET 中支持的类型

说明

ConcurrentExclusiveSchedulerPair

提供并发和独占任务计划程序,其用于执行任务,同时确保并发任务可同时运行,而独占任务从不同时运行。

Parallel

提供对并行循环和区域的支持。

ParallelLoopResult

提供执行并行循环的完成状态。

ParallelLoopState

可用来使 Parallel 循环的迭代与其他迭代交互。此类的实例由 Parallel 类提供给每个循环;不能在你的用户代码中创建实例。

ParallelOptions

存储用于配置 Parallel 类的方法的操作的选项。

Task

表示一个异步操作。

Task<TResult>

表示一个可以返回值的异步操作。

TaskCanceledException

表示一个用于告知任务取消的异常。

TaskCompletionSource<TResult>

表示未绑定到委托的 Task<TResult> 的制造者方,并通过 TaskCompletionSource<T>.Task 属性提供对使用者方的访问。

TaskContinuationOptions

为通过使用 ContinueWith or Task<T>.ContinueWith 方法创建的任务指定行为。

TaskCreationOptions

指定可控制任务的创建和执行的可选行为的标志。

TaskExtensions

提供一组用于处理特定类型的 Task 实例的静态方法(在 Visual Basic 中为共享方法)。

TaskFactory

提供对创建和计划 Task 对象的支持。

TaskFactory<TResult>

提供对创建和计划 Task<T> 对象的支持。

TaskScheduler

表示一个处理将任务排队到线程中的低级工作的对象。

TaskSchedulerException

表示一个用于告知由 TaskScheduler 计划的某个操作无效的异常。

TaskStatus

表示任务生命周期中的当前阶段。

UnobservedTaskExceptionEventArgs

为在出错任务的异常未观察到时引发的事件提供数据。

System.Threading.Tasks.DataFlow 命名空间

若要安装 System.Threading.Tasks.Dataflow 命名空间,请在 Visual Studio 2012 中打开项目,从**“项目”菜单中选择“管理 NuGet 包”**,并联机搜索 Microsoft.Tpl.Dataflow 包。

适用于 Windows 应用商店应用的 .NET 中支持的类型

说明

ActionBlock<TInput>

提供数据流块,该块调用为每个接收的数据元素提供的 Action<T> 委托。

BatchBlock<T>

提供将输入批处理到数组中的数据流块。

BatchedJoinBlock<T1, T2>

提供批处理指定数目输入的数据流块,这些输入提供给一个或多个目标,可能属于不同类型。

BatchedJoinBlock<T1, T2, T3>

提供批处理指定数目输入的数据流块,这些输入提供给一个或多个目标,可能属于不同类型。

BroadcastBlock<T>

提供缓冲区,用于一次存储最多一个元素,在下一个消息抵达时覆盖每个消息。消息会传播至所有的链接目标,这些目标都可能使用消息的克隆。

BufferBlock<T>

提供用于存储数据的缓冲区。

DataflowBlock

提供一组用于处理数据流块的静态方法(在 Visual Basic 中为共享方法)。

DataflowBlockOptions

提供选项,用于配置数据流块执行的处理。

DataflowLinkOptions

提供用于配置数据流块之间链接的选项。

DataflowMessageHeader

提供用于在数据流块之间传递的数据特性的容器。

DataflowMessageStatus

表示在数据流块间传递时 DataflowMessageHeader 的状态。

ExecutionDataflowBlockOptions

提供选项,用于配置数据流块执行的处理,这些块通过调用用户提供的委托处理每条消息。这些数据流块有 ActionBlock<TInput> 和 TransformBlock<TInput, TOutput> 等。

GroupingDataflowBlockOptions

提供选项,用于配置数据流块执行的处理,这些块对多条消息分组。这些数据流块有 JoinBlock<T1, T2> 和 BatchBlock<T> 等。

IDataflowBlock

表示数据流块。

IPropagatorBlock<TInput, TOutput>

表示同时为数据的目标和源的数据流块。

IReceivableSourceBlock<TOutput>

表示数据流块,其支持在不链接的情况下接收消息。

ISourceBlock<TOutput>

表示作为数据源的数据流块。

ITargetBlock<TInput>

表示作为数据目标的数据流块。

JoinBlock<T1, T2>

提供一个数据流块,它联接多个数据流源,这些数据流源并不一定属于相同类型,会等待每个类型的一个项目到达,然后才作为包含每个类型的项目的元组释放。

JoinBlock<T1, T2, T3>

提供一个数据流块,它联接多个数据流源,这些数据流源并不一定属于相同类型,会等待每个类型的一个项目到达,然后才作为包含每个类型的项目的元组释放。

TransformBlock<TInput, TOutput>

提供数据流块,该块调用为每个接收的数据元素提供的 Func<T, TResult> 委托。

TransformManyBlock<TInput, TOutput>

提供数据流块,该块调用为每个接收的数据元素提供的 Func<T, TResult> 委托。

WriteOnceBlock<T>

在数据流块网络中为接收和存储最多一个元素提供缓冲区。

请参见

概念

用于 Windows 应用商店应用的 .NET API