SemaphoreSlim.WaitAsync 方法

定义

输入 SemaphoreSlim 的异步等待。

重载

WaitAsync(Int32, CancellationToken)

在观察 CancellationToken 时,输入 SemaphoreSlim 的异步等待,使用 32 位带符号整数度量时间间隔。

WaitAsync()

输入 SemaphoreSlim 的异步等待。

WaitAsync(Int32)

输入 SemaphoreSlim 的异步等待,使用 32 位带符号整数度量时间间隔。

WaitAsync(CancellationToken)

在观察 CancellationToken 时,输入 SemaphoreSlim 的异步等待。

WaitAsync(TimeSpan)

输入 SemaphoreSlim 的异步等待,使用 TimeSpan 度量时间间隔。

WaitAsync(TimeSpan, CancellationToken)

在观察 SemaphoreSlim 时,输入 TimeSpan 的异步等待,使用 CancellationToken 度量时间间隔。

WaitAsync(Int32, CancellationToken)

在观察 CancellationToken 时,输入 SemaphoreSlim 的异步等待,使用 32 位带符号整数度量时间间隔。

public:
 System::Threading::Tasks::Task<bool> ^ WaitAsync(int millisecondsTimeout, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.Task<bool> WaitAsync (int millisecondsTimeout, System.Threading.CancellationToken cancellationToken);
member this.WaitAsync : int * System.Threading.CancellationToken -> System.Threading.Tasks.Task<bool>
Public Function WaitAsync (millisecondsTimeout As Integer, cancellationToken As CancellationToken) As Task(Of Boolean)

参数

millisecondsTimeout
Int32

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

cancellationToken
CancellationToken

要观察的 CancellationToken

返回

如果当前线程成功输入了 SemaphoreSlim,则为将通过 true 的结果一起完成的任务,否则将通过 false 的结果完成。

例外

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

- 或 -

millisecondsTimeout 大于 Int32.MaxValue

已释放当前实例。

cancellationToken 已取消。

注解

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

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

此方法将存储在任务中,它返回该方法的同步对应项可能引发的所有非使用异常。 如果异常存储在返回的任务中,则在等待任务时将引发该异常。 使用异常(如 ArgumentException)仍会同步引发。 有关存储的异常,请参阅 引发的 Wait(Int32)异常。

适用于

WaitAsync()

输入 SemaphoreSlim 的异步等待。

public:
 System::Threading::Tasks::Task ^ WaitAsync();
public System.Threading.Tasks.Task WaitAsync ();
member this.WaitAsync : unit -> System.Threading.Tasks.Task
Public Function WaitAsync () As Task

返回

输入信号量时完成任务。

例外

注解

此方法将存储在任务中,它返回该方法的同步对应项可能引发的所有非使用异常。 如果异常存储在返回的任务中,则在等待任务时将引发该异常。 使用异常(如 ArgumentException)仍会同步引发。 有关存储的异常,请参阅 引发的 Wait()异常。

适用于

WaitAsync(Int32)

输入 SemaphoreSlim 的异步等待,使用 32 位带符号整数度量时间间隔。

public:
 System::Threading::Tasks::Task<bool> ^ WaitAsync(int millisecondsTimeout);
public System.Threading.Tasks.Task<bool> WaitAsync (int millisecondsTimeout);
member this.WaitAsync : int -> System.Threading.Tasks.Task<bool>
Public Function WaitAsync (millisecondsTimeout As Integer) As Task(Of Boolean)

参数

millisecondsTimeout
Int32

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

返回

如果当前线程成功输入了 SemaphoreSlim,则为将通过 true 的结果一起完成的任务,否则将通过 false 的结果完成。

例外

已释放当前实例。

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

- 或 -

millisecondsTimeout 大于 Int32.MaxValue

注解

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

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

此方法将存储在任务中,它返回该方法的同步对应项可能引发的所有非使用异常。 如果异常存储在返回的任务中,则在等待任务时将引发该异常。 使用异常(如 ArgumentException)仍会同步引发。 有关存储的异常,请参阅 引发的 Wait(Int32)异常。

适用于

WaitAsync(CancellationToken)

在观察 CancellationToken 时,输入 SemaphoreSlim 的异步等待。

public:
 System::Threading::Tasks::Task ^ WaitAsync(System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.Task WaitAsync (System.Threading.CancellationToken cancellationToken);
member this.WaitAsync : System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Function WaitAsync (cancellationToken As CancellationToken) As Task

参数

cancellationToken
CancellationToken

要观察的 CancellationToken 标记。

返回

输入信号量时完成任务。

例外

已释放当前实例。

cancellationToken 已取消。

注解

此方法将存储在任务中,它返回该方法的同步对应项可能引发的所有非使用异常。 如果异常存储在返回的任务中,则在等待任务时将引发该异常。 使用异常(如 ArgumentException)仍会同步引发。 有关存储的异常,请参阅 引发的 Wait()异常。

适用于

WaitAsync(TimeSpan)

输入 SemaphoreSlim 的异步等待,使用 TimeSpan 度量时间间隔。

public:
 System::Threading::Tasks::Task<bool> ^ WaitAsync(TimeSpan timeout);
public System.Threading.Tasks.Task<bool> WaitAsync (TimeSpan timeout);
member this.WaitAsync : TimeSpan -> System.Threading.Tasks.Task<bool>
Public Function WaitAsync (timeout As TimeSpan) As Task(Of Boolean)

参数

timeout
TimeSpan

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

返回

如果当前线程成功输入了 SemaphoreSlim,则为将通过 true 的结果一起完成的任务,否则将通过 false 的结果完成。

例外

已释放当前实例。

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

- 或 -

timeout 大于 Int32.MaxValue

注解

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

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

此方法将存储在任务中,它返回该方法的同步对应项可能引发的所有非使用异常。 如果异常存储在返回的任务中,则在等待任务时将引发该异常。 使用异常(如 ArgumentException)仍会同步引发。 有关存储的异常,请参阅 引发的 Wait(TimeSpan)异常。

适用于

WaitAsync(TimeSpan, CancellationToken)

在观察 SemaphoreSlim 时,输入 TimeSpan 的异步等待,使用 CancellationToken 度量时间间隔。

public:
 System::Threading::Tasks::Task<bool> ^ WaitAsync(TimeSpan timeout, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.Task<bool> WaitAsync (TimeSpan timeout, System.Threading.CancellationToken cancellationToken);
member this.WaitAsync : TimeSpan * System.Threading.CancellationToken -> System.Threading.Tasks.Task<bool>
Public Function WaitAsync (timeout As TimeSpan, cancellationToken As CancellationToken) As Task(Of Boolean)

参数

timeout
TimeSpan

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

cancellationToken
CancellationToken

要观察的 CancellationToken 标记。

返回

如果当前线程成功输入了 SemaphoreSlim,则为将通过 true 的结果一起完成的任务,否则将通过 false 的结果完成。

例外

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

- 或 -

timeout 大于 Int32.MaxValue

cancellationToken 已取消。

注解

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

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

此方法将存储在任务中,它返回该方法的同步对应项可能引发的所有非使用异常。 如果异常存储在返回的任务中,则在等待任务时将引发该异常。 使用异常(如 ArgumentException)仍会同步引发。 有关存储的异常,请参阅 引发的 Wait(TimeSpan)异常。

适用于