ReentrantSemaphore.ExecuteAsync 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
| 名称 | 说明 |
|---|---|
| ExecuteAsync(Func<Task>, CancellationToken) |
在信号灯中执行给定操作。 |
| ExecuteAsync<T>(Func<ValueTask<T>>, CancellationToken) |
在信号灯中执行给定操作。 |
ExecuteAsync(Func<Task>, CancellationToken)
在信号灯中执行给定操作。
public abstract System.Threading.Tasks.Task ExecuteAsync(Func<System.Threading.Tasks.Task> operation, System.Threading.CancellationToken cancellationToken = default);
abstract member ExecuteAsync : Func<System.Threading.Tasks.Task> * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public MustOverride Function ExecuteAsync (operation As Func(Of Task), Optional cancellationToken As CancellationToken = Nothing) As Task
参数
输入信号灯后要调用的委托。 如果向构造函数提供 a JoinableTaskContext ,则如果在主线程上调用此委托,则此委托将在主线程上执行,否则将在线程池上调用该委托。 当未向构造函数提供任何 JoinableTaskContext 内容时,此委托将在调用方上下文中执行。
- cancellationToken
- CancellationToken
取消令牌。
返回
在信号灯退出后完成的任务 operation。
适用于
ExecuteAsync<T>(Func<ValueTask<T>>, CancellationToken)
在信号灯中执行给定操作。
public abstract System.Threading.Tasks.ValueTask<T> ExecuteAsync<T>(Func<System.Threading.Tasks.ValueTask<T>> operation, System.Threading.CancellationToken cancellationToken = default);
abstract member ExecuteAsync : Func<System.Threading.Tasks.ValueTask<'T>> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<'T>
Public MustOverride Function ExecuteAsync(Of T) (operation As Func(Of ValueTask(Of T)), Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of T)
类型参数
- T
操作返回的值的类型。
参数
输入信号灯后要调用的委托。 如果向构造函数提供 a JoinableTaskContext ,则如果在主线程上调用此委托,则此委托将在主线程上执行,否则将在线程池上调用该委托。 当未向构造函数提供任何 JoinableTaskContext 内容时,此委托将在调用方上下文中执行。
- cancellationToken
- CancellationToken
取消令牌。
返回
在信号灯退出后完成的任务 operation。
例外
检测到重新进入时引发,由于 NotAllowed 提供给构造函数,不允许基于该构造函数。 当已保存信号灯的代码调用尝试再次进入信号灯的代码时,就会发生这种情况。 当调用方未等待调用代码时,可能适合禁止针对以火忘方式调用的方法进行此重新进入检测。 若要在保留整体保护的同时取消该特定情况的此异常,请使用 SuppressRelevance()。