Поделиться через


IExecutionStrategy.ExecuteAsync Метод

Определение

Перегрузки

ExecuteAsync<TState,TResult>(Func<TState,CancellationToken,Task<TResult>>, Func<TState,CancellationToken,Task<ExecutionResult<TResult>>>, TState, CancellationToken)

Выполняет указанную асинхронную операцию и возвращает результат.

ExecuteAsync<TState,TResult>(TState, Func<DbContext,TState,CancellationToken, Task<TResult>>, Func<DbContext,TState,CancellationToken,Task<ExecutionResult<TResult>>>, CancellationToken)

Выполняет указанную асинхронную операцию и возвращает результат.

ExecuteAsync<TState,TResult>(Func<TState,CancellationToken,Task<TResult>>, Func<TState,CancellationToken,Task<ExecutionResult<TResult>>>, TState, CancellationToken)

Выполняет указанную асинхронную операцию и возвращает результат.

public System.Threading.Tasks.Task<TResult> ExecuteAsync<TState,TResult> (Func<TState,System.Threading.CancellationToken,System.Threading.Tasks.Task<TResult>> operation, Func<TState,System.Threading.CancellationToken,System.Threading.Tasks.Task<Microsoft.EntityFrameworkCore.Storage.ExecutionResult<TResult>>> verifySucceeded, TState state, System.Threading.CancellationToken cancellationToken = default);
abstract member ExecuteAsync : Func<'State, System.Threading.CancellationToken, System.Threading.Tasks.Task<'Result>> * Func<'State, System.Threading.CancellationToken, System.Threading.Tasks.Task<Microsoft.EntityFrameworkCore.Storage.ExecutionResult<'Result>>> * 'State * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'Result>
Public Function ExecuteAsync(Of TState, TResult) (operation As Func(Of TState, CancellationToken, Task(Of TResult)), verifySucceeded As Func(Of TState, CancellationToken, Task(Of ExecutionResult(Of TResult))), state As TState, Optional cancellationToken As CancellationToken = Nothing) As Task(Of TResult)

Параметры типа

TState

Тип состояния.

TResult

Тип результата , Task<TResult> возвращаемый operation.

Параметры

operation
Func<TState,CancellationToken,Task<TResult>>

Функция, возвращающая запущенную задачу типа TResult.

verifySucceeded
Func<TState,CancellationToken,Task<ExecutionResult<TResult>>>

Делегат, проверяющий, успешно ли выполнена операция, даже если возникло исключение.

state
TState

Состояние, которое будет передано операции.

cancellationToken
CancellationToken

Маркер отмены, используемый для отмены операции повтора, но не операции, которые уже находятся в тестовом режиме или уже успешно завершены.

Возвращаемое значение

Task<TResult>

Задача, которая будет выполняться до завершения, если исходная задача успешно завершается (первый раз или после повторных временных сбоев). Если задача завершается сбоем с невременной ошибкой или достигнут предел повторных попыток, возвращаемая задача завершится ошибкой и должно наблюдаться исключение.

Исключения

Возникает, если операция не завершилась успешно после заданного количества повторных попыток.

Применяется к

ExecuteAsync<TState,TResult>(TState, Func<DbContext,TState,CancellationToken, Task<TResult>>, Func<DbContext,TState,CancellationToken,Task<ExecutionResult<TResult>>>, CancellationToken)

Исходный код:
IExecutionStrategy.cs
Исходный код:
IExecutionStrategy.cs
Исходный код:
IExecutionStrategy.cs

Выполняет указанную асинхронную операцию и возвращает результат.

public System.Threading.Tasks.Task<TResult> ExecuteAsync<TState,TResult> (TState state, Func<Microsoft.EntityFrameworkCore.DbContext,TState,System.Threading.CancellationToken,System.Threading.Tasks.Task<TResult>> operation, Func<Microsoft.EntityFrameworkCore.DbContext,TState,System.Threading.CancellationToken,System.Threading.Tasks.Task<Microsoft.EntityFrameworkCore.Storage.ExecutionResult<TResult>>> verifySucceeded, System.Threading.CancellationToken cancellationToken = default);
public System.Threading.Tasks.Task<TResult> ExecuteAsync<TState,TResult> (TState state, Func<Microsoft.EntityFrameworkCore.DbContext,TState,System.Threading.CancellationToken,System.Threading.Tasks.Task<TResult>> operation, Func<Microsoft.EntityFrameworkCore.DbContext,TState,System.Threading.CancellationToken,System.Threading.Tasks.Task<Microsoft.EntityFrameworkCore.Storage.ExecutionResult<TResult>>>? verifySucceeded, System.Threading.CancellationToken cancellationToken = default);
abstract member ExecuteAsync : 'State * Func<Microsoft.EntityFrameworkCore.DbContext, 'State, System.Threading.CancellationToken, System.Threading.Tasks.Task<'Result>> * Func<Microsoft.EntityFrameworkCore.DbContext, 'State, System.Threading.CancellationToken, System.Threading.Tasks.Task<Microsoft.EntityFrameworkCore.Storage.ExecutionResult<'Result>>> * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'Result>
Public Function ExecuteAsync(Of TState, TResult) (state As TState, operation As Func(Of DbContext, TState, CancellationToken, Task(Of TResult)), verifySucceeded As Func(Of DbContext, TState, CancellationToken, Task(Of ExecutionResult(Of TResult))), Optional cancellationToken As CancellationToken = Nothing) As Task(Of TResult)

Параметры типа

TState

Тип состояния.

TResult

Тип результата , Task<TResult> возвращаемый operation.

Параметры

state
TState

Состояние, которое будет передано операции.

operation
Func<DbContext,TState,CancellationToken,Task<TResult>>

Функция, возвращающая запущенную задачу типа TResult.

verifySucceeded
Func<DbContext,TState,CancellationToken,Task<ExecutionResult<TResult>>>

Делегат, проверяющий, успешно ли выполнена операция, даже если возникло исключение.

cancellationToken
CancellationToken

Маркер отмены, используемый для отмены операции повтора, но не операции, которые уже находятся в тестовом режиме или уже успешно завершены.

Возвращаемое значение

Task<TResult>

Задача, которая будет выполняться до завершения, если исходная задача успешно завершается (первый раз или после повторных временных сбоев). Если задача завершается сбоем с невременной ошибкой или достигнут предел повторных попыток, возвращаемая задача завершится ошибкой и должно наблюдаться исключение.

Исключения

Операция не выполнена после заданного количества повторных попыток.

Если CancellationToken отменяется.

Комментарии

Дополнительные сведения и примеры см. в статье Устойчивость подключения и повторные попытки базы данных .

Применяется к