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.

类型参数

参数

  • operation
    类型:System.Func<Task<TResult>>
    用于返回 TResult 类型的已启动任务的函数。

返回值

类型:System.Threading.Tasks.Task<TResult>
如果原始任务成功完成(第一次执行或在瞬态失败后重试)将要运行以完成的任务。如果任务失败且发生非瞬态错误或达到重试限制值,则返回的任务将出错且必须显示异常。

Implements

IDbExecutionStrategy.ExecuteAsync<TResult>(Func<Task<TResult>>, CancellationToken)

异常

例外 条件
RetryLimitExceededException

如果重试延迟策略确定不应再重试操作。

InvalidOperationException

如果检测到现有事务且执行策略不支持它。

InvalidOperationException

如果此实例已用于执行某个操作。

请参阅

参考

DbExecutionStrategy 类

ExecuteAsync 重载

System.Data.Entity.Infrastructure 命名空间