信息
您所需的主题如下所示。但此主题未包含在此库中。

Barrier 类

2013/12/13

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

System.Object
  System.Threading.Barrier

Namespace:  System.Threading
程序集:  System(位于 System.dll 中)

public class Barrier : IDisposable

Barrier 类型公开以下成员。

  名称说明
公共方法Barrier(Int32)初始化 Barrier 类的新实例。
公共方法Barrier(Int32, Action<Barrier>)初始化 Barrier 类的新实例。
返回顶部

  名称说明
公共属性CurrentPhaseNumber获取屏障的当前阶段的编号。
公共属性ParticipantCount获取屏障中参与者的总数。
公共属性ParticipantsRemaining获取屏障中尚未在当前阶段发出信号的参与者的数量。
返回顶部

  名称说明
公共方法AddParticipant通知 Barrier,告知其将会有另一个参与者。
公共方法AddParticipants通知 Barrier,告知其将会有多个其他参与者。
公共方法Dispose()释放由 Barrier 类的当前实例使用的所有资源。
受保护的方法Dispose(Boolean)释放由 Barrier 占用的非托管资源,还可以另外再释放托管资源。
公共方法Equals(Object)确定指定的 Object 是否等于当前的 Object (从 Object 继承。)
受保护的方法Finalize允许 Object 在垃圾回收器回收该对象之前尝试释放资源并执行其他清理操作。 (从 Object 继承。)
公共方法GetHashCode用作特定类型的哈希函数。 (从 Object 继承。)
公共方法GetType获取当前实例的 Type (从 Object 继承。)
受保护的方法MemberwiseClone创建当前 Object 的浅表副本。 (从 Object 继承。)
公共方法RemoveParticipant通知 Barrier,告知其将会减少一个参与者。
公共方法RemoveParticipants通知 Barrier,告知其将会减少一些参与者。
公共方法SignalAndWait()发出参与者已达到屏障的信号,并等待所有其他参与者也达到屏障。
公共方法SignalAndWait(CancellationToken)发出参与者已达到屏障的信号,并等待所有其他参与者达到屏障,同时观察取消标记。
公共方法SignalAndWait(Int32)发出参与者已达到屏障的信号,并等待所有其他参与者也达到屏障,同时使用 32 位有符号整数测量超时。
公共方法SignalAndWait(TimeSpan)发出参与者已达到屏障的信号,并等待所有其他参与者也达到屏障,同时使用 TimeSpan 对象测量时间间隔。
公共方法SignalAndWait(Int32, CancellationToken)发出参与者已达到屏障的信号,并等待所有其他参与者也达到屏障,使用 32 位有符号整数测量超时,同时观察取消标记。
公共方法SignalAndWait(TimeSpan, CancellationToken)发出参与者已达到屏障的信号,并等待所有其他参与者也达到屏障,同时使用 TimeSpan 对象测量时间间隔并观察取消标记。
公共方法ToString返回一个字符串,它表示当前的对象。 (从 Object 继承。)
返回顶部

通过在一系列阶段间移动来协作完成一组任务,此时该组中的每个任务发信号指出它已经到达指定阶段的 Barrier 并且暗中等待其他任务到达。相同的 Barrier 可用于多个阶段。

下面的示例演示如何使用屏障:

Windows Phone OS

受以下版本支持: 8.0

Barrier 的所有公共和受保护的成员是线程安全的,并且可以同时从多个线程使用,Dispose 除外,它只有当 Barrier 上的所有其他操作都完成后才能使用。

显示: