SemaphoreSlim.Wait 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
阻止当前线程,直到它可以进入 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
参数
- cancellationToken
- CancellationToken
要观察的 CancellationToken。
返回
如果当前线程成功输入 SemaphoreSlim,则 true
;否则,false
。
- 属性
例外
cancellationToken
已取消。
注解
如果超时设置为 -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
参数
- cancellationToken
- CancellationToken
要观察的 CancellationToken。
返回
如果当前线程成功输入 SemaphoreSlim,则 true
;否则,false
。
- 属性
例外
cancellationToken
已取消。
已释放 SemaphoreSlim 实例,或者已释放创建 cancellationToken
的 CancellationTokenSource。
注解
如果超时设置为 -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
参数
返回
如果当前线程成功输入 SemaphoreSlim,则 true
;否则,false
。
- 属性
例外
信号灯实例已释放。
注解
如果超时设置为 -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
参数
返回
如果当前线程成功输入 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
已取消。
注解
如果线程或任务能够进入信号量,它会逐个递减 CurrentCount 属性。
如果取消 cancellationToken
,则线程或任务不会输入信号灯,并且不会递减 CurrentCount 属性。 相反,该方法会引发 OperationCanceledException 异常。