DbExecutionStrategy.ExecuteAsync<TResult> 方法 (Func<Task<TResult>>, CancellationToken)
[本页针对的是实体框架版本 6。最新版本以“实体框架”NuGet 包的形式提供。有关实体框架的更多信息,请参见 msdn.com/data/ef。]
在指定异步操作满足当前重试策略时重复执行此操作。
命名空间: System.Data.Entity.Infrastructure
程序集: EntityFramework(在 EntityFramework.dll 中)
语法
声明
<SuppressMessageAttribute("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")> _
Public Function ExecuteAsync(Of TResult) ( _
operation As Func(Of Task(Of TResult)), _
cancellationToken As CancellationToken _
) As Task(Of TResult)
用法
Dim instance As DbExecutionStrategy
Dim operation As Func(Of Task(Of TResult))
Dim cancellationToken As CancellationToken
Dim returnValue As Task(Of TResult)
returnValue = instance.ExecuteAsync(operation, _
cancellationToken)
[SuppressMessageAttribute("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]
public Task<TResult> ExecuteAsync<TResult>(
Func<Task<TResult>> operation,
CancellationToken cancellationToken
)
[SuppressMessageAttribute(L"Microsoft.Design", L"CA1006:DoNotNestGenericTypesInMemberSignatures")]
public:
generic<typename TResult>
virtual Task<TResult>^ ExecuteAsync(
Func<Task<TResult>^>^ operation,
CancellationToken cancellationToken
) sealed
[<SuppressMessageAttribute("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")>]
abstract ExecuteAsync :
operation:Func<Task<'TResult>> *
cancellationToken:CancellationToken -> Task<'TResult>
[<SuppressMessageAttribute("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")>]
override ExecuteAsync :
operation:Func<Task<'TResult>> *
cancellationToken:CancellationToken -> Task<'TResult>
JScript does not support generic types and methods.
类型参数
- TResult
operation 返回的 Task<TResult> 的结果类型。
参数
- operation
类型:System.Func<Task<TResult>>
用于返回 TResult 类型的已启动任务的函数。
- cancellationToken
类型:System.Threading.CancellationToken
用于取消重试操作的取消标记,但是不取消已在执行中或已成功完成的操作。
返回值
类型:System.Threading.Tasks.Task<TResult>
如果原始任务成功完成(第一次执行或在瞬态失败后重试)将要运行以完成的任务。如果任务失败且发生非瞬态错误或达到重试限制值,则返回的任务将出错且必须显示异常。
Implements
IDbExecutionStrategy.ExecuteAsync<TResult>(Func<Task<TResult>>, CancellationToken)
异常
例外 | 条件 |
---|---|
RetryLimitExceededException | 如果重试延迟策略确定不应再重试操作。 |
InvalidOperationException | 如果检测到现有事务且执行策略不支持它。 |
InvalidOperationException | 如果此实例已用于执行某个操作。 |