Share via


Barrier.SignalAndWait 方法

定义

发出参与者已达到屏障并等待所有其他参与者也达到屏障。

重载

SignalAndWait()

发出参与者已达到屏障并等待所有其他参与者也达到屏障。

SignalAndWait(Int32)

发出参与者已达到屏障的信号,并等待所有其他参与者也达到屏障,同时使用 32 位带符号整数测量超时。

SignalAndWait(CancellationToken)

发出参与者已达到屏障的信号,并等待所有其他参与者达到屏障,同时观察取消标记。

SignalAndWait(TimeSpan)

发出参与者已达到屏障的信号,并等待所有其他参与者也达到屏障,同时使用 TimeSpan 对象测量时间间隔。

SignalAndWait(Int32, CancellationToken)

发出参与者已达到屏障的信号,并等待所有其他参与者也达到屏障,使用 32 位带符号整数测量超时,同时观察取消标记。

SignalAndWait(TimeSpan, CancellationToken)

发出参与者已达到屏障的信号,并等待所有其他参与者也达到屏障,使用 TimeSpan 对象测量时间间隔,同时观察取消标记。

SignalAndWait()

Source:
Barrier.cs
Source:
Barrier.cs
Source:
Barrier.cs

发出参与者已达到屏障并等待所有其他参与者也达到屏障。

public:
 void SignalAndWait();
public void SignalAndWait ();
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public void SignalAndWait ();
member this.SignalAndWait : unit -> unit
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
member this.SignalAndWait : unit -> unit
Public Sub SignalAndWait ()
属性

例外

已释放当前实例。

该方法从阶段后操作中调用,当前屏障具有 0 个参与者,或该屏障被注册为参与者的更多线程终止。

在所有参与线程调用了 SignalAndWait 之后,如果关卡的后期阶段操作中引发了异常,该异常将包装在 BarrierPostPhaseException 中并在所有参与线程上引发。

另请参阅

适用于

SignalAndWait(Int32)

Source:
Barrier.cs
Source:
Barrier.cs
Source:
Barrier.cs

发出参与者已达到屏障的信号,并等待所有其他参与者也达到屏障,同时使用 32 位带符号整数测量超时。

public:
 bool SignalAndWait(int millisecondsTimeout);
public bool SignalAndWait (int millisecondsTimeout);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public bool SignalAndWait (int millisecondsTimeout);
member this.SignalAndWait : int -> bool
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
member this.SignalAndWait : int -> bool
Public Function SignalAndWait (millisecondsTimeout As Integer) As Boolean

参数

millisecondsTimeout
Int32

等待的毫秒数,或为 Infinite (-1),表示无限期等待。

返回

如果所有参与者都已在指定时间内达到屏障,则为 true;否则为 false

属性

例外

已释放当前实例。

millisecondsTimeout 是一个非 -1 的负数,而 -1 表示无限期超时。

该方法从阶段后操作中调用,当前屏障具有 0 个参与者,或该屏障被注册为参与者的更多线程终止。

在所有参与线程调用了 SignalAndWait 之后,如果关卡的后期阶段操作中引发了异常,该异常将包装在 BarrierPostPhaseException 中并在所有参与线程上引发。

另请参阅

适用于

SignalAndWait(CancellationToken)

Source:
Barrier.cs
Source:
Barrier.cs
Source:
Barrier.cs

发出参与者已达到屏障的信号,并等待所有其他参与者达到屏障,同时观察取消标记。

public:
 void SignalAndWait(System::Threading::CancellationToken cancellationToken);
public void SignalAndWait (System.Threading.CancellationToken cancellationToken);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public void SignalAndWait (System.Threading.CancellationToken cancellationToken);
member this.SignalAndWait : System.Threading.CancellationToken -> unit
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
member this.SignalAndWait : System.Threading.CancellationToken -> unit
Public Sub SignalAndWait (cancellationToken As CancellationToken)

参数

cancellationToken
CancellationToken

要观察的 CancellationToken

属性

例外

cancellationToken 已取消。

已释放当前实例。

该方法从阶段后操作中调用,当前屏障具有 0 个参与者,或该屏障被注册为参与者的更多线程终止。

另请参阅

适用于

SignalAndWait(TimeSpan)

Source:
Barrier.cs
Source:
Barrier.cs
Source:
Barrier.cs

发出参与者已达到屏障的信号,并等待所有其他参与者也达到屏障,同时使用 TimeSpan 对象测量时间间隔。

public:
 bool SignalAndWait(TimeSpan timeout);
public bool SignalAndWait (TimeSpan timeout);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public bool SignalAndWait (TimeSpan timeout);
member this.SignalAndWait : TimeSpan -> bool
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
member this.SignalAndWait : TimeSpan -> bool
Public Function SignalAndWait (timeout As TimeSpan) As Boolean

参数

timeout
TimeSpan

表示等待毫秒数的 TimeSpan,或表示 -1 毫秒(无限期等待)的 TimeSpan

返回

如果所有其他参与者已到达关卡,则为 true;否则为 false

属性

例外

已释放当前实例。

timeout 是 -1 毫秒之外的负数,表示无限超时或者超时大于 32,767。

该方法从阶段后操作中调用,当前屏障具有 0 个参与者,或该屏障被注册为参与者的更多线程终止。

另请参阅

适用于

SignalAndWait(Int32, CancellationToken)

Source:
Barrier.cs
Source:
Barrier.cs
Source:
Barrier.cs

发出参与者已达到屏障的信号,并等待所有其他参与者也达到屏障,使用 32 位带符号整数测量超时,同时观察取消标记。

public:
 bool SignalAndWait(int millisecondsTimeout, System::Threading::CancellationToken cancellationToken);
public bool SignalAndWait (int millisecondsTimeout, System.Threading.CancellationToken cancellationToken);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public bool SignalAndWait (int millisecondsTimeout, System.Threading.CancellationToken cancellationToken);
member this.SignalAndWait : int * System.Threading.CancellationToken -> bool
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
member this.SignalAndWait : int * System.Threading.CancellationToken -> bool
Public Function SignalAndWait (millisecondsTimeout As Integer, cancellationToken As CancellationToken) As Boolean

参数

millisecondsTimeout
Int32

等待的毫秒数,或为 Infinite (-1),表示无限期等待。

cancellationToken
CancellationToken

要观察的 CancellationToken

返回

true 如果所有参与者在指定时间内都达到障碍,则为 ;否则为 false

属性

例外

cancellationToken 已取消。

已释放当前实例。

millisecondsTimeout 是一个非 -1 的负数,而 -1 表示无限期超时。

该方法从阶段后操作中调用,当前屏障具有 0 个参与者,或该屏障被注册为参与者的更多线程终止。

注解

cancellationToken如果在信号生效之前取消了 ,则会引发 ,OperationCanceledException并且ParticipantsRemaining该值不会减小。 cancellationToken如果 信号生效后未取消或取消,则ParticipantsRemaining减少且不OperationCanceledException引发。

另请参阅

适用于

SignalAndWait(TimeSpan, CancellationToken)

Source:
Barrier.cs
Source:
Barrier.cs
Source:
Barrier.cs

发出参与者已达到屏障的信号,并等待所有其他参与者也达到屏障,使用 TimeSpan 对象测量时间间隔,同时观察取消标记。

public:
 bool SignalAndWait(TimeSpan timeout, System::Threading::CancellationToken cancellationToken);
public bool SignalAndWait (TimeSpan timeout, System.Threading.CancellationToken cancellationToken);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public bool SignalAndWait (TimeSpan timeout, System.Threading.CancellationToken cancellationToken);
member this.SignalAndWait : TimeSpan * System.Threading.CancellationToken -> bool
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
member this.SignalAndWait : TimeSpan * System.Threading.CancellationToken -> bool
Public Function SignalAndWait (timeout As TimeSpan, cancellationToken As CancellationToken) As Boolean

参数

timeout
TimeSpan

表示等待毫秒数的 TimeSpan,或表示 -1 毫秒(无限期等待)的 TimeSpan

cancellationToken
CancellationToken

要观察的 CancellationToken

返回

如果所有其他参与者已到达关卡,则为 true;否则为 false

属性

例外

cancellationToken 已取消。

已释放当前实例。

timeout 为 -1 毫秒以外的负数,表示无限期超时。

该方法从阶段后操作中调用,当前屏障具有 0 个参与者,或该屏障被注册为参与者的更多线程终止。

另请参阅

适用于