SemaphoreSlim.Wait 方法

定义

阻止当前线程,直到它可以进入 SemaphoreSlim

重载

Wait(TimeSpan, CancellationToken)

阻止当前线程,直到它可以进入 SemaphoreSlim,使用指定超时的 TimeSpan,同时观察 CancellationToken

Wait(Int32, CancellationToken)

阻止当前线程,直到它可以进入 SemaphoreSlim,使用指定超时的 32 位有符号整数,同时观察 CancellationToken

Wait(TimeSpan)

阻止当前线程,直到它可以输入 SemaphoreSlim,使用 TimeSpan 指定超时。

Wait(Int32)

阻止当前线程,直到它可以使用指定超时的 32 位有符号整数进入 SemaphoreSlim

Wait()

阻止当前线程,直到它可以进入 SemaphoreSlim

Wait(CancellationToken)

阻止当前线程,直到它可以进入 SemaphoreSlim,同时观察 CancellationToken

Wait(TimeSpan, CancellationToken)

Source:
SemaphoreSlim.cs
Source:
SemaphoreSlim.cs
Source:
SemaphoreSlim.cs

阻止当前线程,直到它可以进入 SemaphoreSlim,使用指定超时的 TimeSpan,同时观察 CancellationToken

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

参数

timeout
TimeSpan

TimeSpan 表示等待的毫秒数、表示无限期等待 -1 毫秒的 TimeSpan,或表示测试等待句柄并立即返回的 0 毫秒的 TimeSpan

cancellationToken
CancellationToken

要观察的 CancellationToken

返回

如果当前线程成功输入 SemaphoreSlim,则 true ;否则,false

属性

例外

cancellationToken 已取消。

timeout 是除 -1 以外的负数,表示无限超时。

-或-。

timeout 大于 Int32.MaxValue

信号灯实例已释放。

-或-

已释放创建 cancellationTokenCancellationTokenSource

注解

如果超时设置为 -1 毫秒,该方法将无限期等待。

如果超时设置为零毫秒,则该方法不会阻止。 它会测试等待句柄的状态并立即返回。

如果线程或任务能够进入信号量,它会逐个递减 CurrentCount 属性。

如果取消 cancellationToken,或者在调用 Wait(TimeSpan, CancellationToken) 时阻止线程或任务,并且 millisecondsTimeout 指定的超时间隔将过期:

  • 线程或任务未输入信号灯。
  • CurrentCount 属性不会递减。

如果取消 cancellationToken,该方法将引发 OperationCanceledException 异常。

另请参阅

适用于

Wait(Int32, CancellationToken)

Source:
SemaphoreSlim.cs
Source:
SemaphoreSlim.cs
Source:
SemaphoreSlim.cs

阻止当前线程,直到它可以进入 SemaphoreSlim,使用指定超时的 32 位有符号整数,同时观察 CancellationToken

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

参数

millisecondsTimeout
Int32

等待的毫秒数,Infinite(-1)无限期等待,或零以测试等待句柄的状态并立即返回。

cancellationToken
CancellationToken

要观察的 CancellationToken

返回

如果当前线程成功输入 SemaphoreSlim,则 true ;否则,false

属性

例外

cancellationToken 已取消。

millisecondsTimeout 是除 -1 以外的负数,表示无限超时。

-或-

millisecondsTimeout 大于 Int32.MaxValue

已释放 SemaphoreSlim 实例,或者已释放创建 cancellationTokenCancellationTokenSource

注解

如果超时设置为 -1 毫秒,该方法将无限期等待。

如果超时设置为零毫秒,则该方法不会阻止。 它会测试等待句柄的状态并立即返回。

如果线程或任务能够进入信号量,它会逐个递减 CurrentCount 属性。

如果取消 cancellationToken,或者在调用 Wait(Int32, CancellationToken) 时阻止线程或任务,并且 millisecondsTimeout 指定的超时间隔将过期:

  • 线程或任务未输入信号灯。
  • CurrentCount 属性不会递减。

如果取消 cancellationToken,该方法将引发 OperationCanceledException 异常。

另请参阅

适用于

Wait(TimeSpan)

Source:
SemaphoreSlim.cs
Source:
SemaphoreSlim.cs
Source:
SemaphoreSlim.cs

阻止当前线程,直到它可以输入 SemaphoreSlim,使用 TimeSpan 指定超时。

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

参数

timeout
TimeSpan

TimeSpan 表示等待的毫秒数、表示无限期等待 -1 毫秒的 TimeSpan,或表示测试等待句柄并立即返回的 0 毫秒的 TimeSpan

返回

如果当前线程成功输入 SemaphoreSlim,则 true ;否则,false

属性

例外

timeout 是除 -1 以外的负数,表示无限超时。

-或-

timeout 大于 Int32.MaxValue

信号灯实例已释放。

注解

如果超时设置为 -1 毫秒,该方法将无限期等待。

如果超时设置为零毫秒,则该方法不会阻止。 它会测试等待句柄的状态并立即返回。

如果线程或任务能够进入信号量,它会逐个递减 CurrentCount 属性。

如果在调用 Wait(TimeSpan) 时阻止线程或任务,并且 millisecondsTimeout 指定的超时间隔将过期:

  • 线程或任务未输入信号灯。
  • CurrentCount 属性不会递减。

另请参阅

适用于

Wait(Int32)

Source:
SemaphoreSlim.cs
Source:
SemaphoreSlim.cs
Source:
SemaphoreSlim.cs

阻止当前线程,直到它可以使用指定超时的 32 位有符号整数进入 SemaphoreSlim

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

参数

millisecondsTimeout
Int32

等待的毫秒数,Infinite(-1)无限期等待,或零以测试等待句柄的状态并立即返回。

返回

如果当前线程成功输入 SemaphoreSlim,则 true ;否则,false

属性

例外

millisecondsTimeout 是除 -1 以外的负数,表示无限超时 -or- 超时大于 Int32.MaxValue

注解

如果超时设置为 -1 毫秒,该方法将无限期等待。

如果超时设置为零毫秒,则该方法不会阻止。 它会测试等待句柄的状态并立即返回。

如果线程或任务能够进入信号量,它会逐个递减 CurrentCount 属性。

如果在调用 Wait(Int32) 时阻止线程或任务,并且 millisecondsTimeout 指定的超时间隔将过期:

  • 线程或任务未输入信号灯。
  • CurrentCount 属性不会递减。

另请参阅

适用于

Wait()

Source:
SemaphoreSlim.cs
Source:
SemaphoreSlim.cs
Source:
SemaphoreSlim.cs

阻止当前线程,直到它可以进入 SemaphoreSlim

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

例外

当前实例已释放。

注解

如果线程或任务能够进入信号量,它会逐个递减 CurrentCount 属性。

另请参阅

适用于

Wait(CancellationToken)

Source:
SemaphoreSlim.cs
Source:
SemaphoreSlim.cs
Source:
SemaphoreSlim.cs

阻止当前线程,直到它可以进入 SemaphoreSlim,同时观察 CancellationToken

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

参数

cancellationToken
CancellationToken

要观察的 CancellationToken 令牌。

属性

例外

cancellationToken 已取消。

当前实例已释放。

-或-

已释放创建 cancellationTokenCancellationTokenSource

注解

如果线程或任务能够进入信号量,它会逐个递减 CurrentCount 属性。

如果取消 cancellationToken,则线程或任务不会输入信号灯,并且不会递减 CurrentCount 属性。 相反,该方法会引发 OperationCanceledException 异常。

另请参阅

适用于