다음을 통해 공유


ExecutionStrategy.ExecuteAsync 메서드

정의

오버로드

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)

지정된 비동기 작업을 실행하고 결과를 반환합니다.

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

지정된 비동기 작업을 실행하고 결과를 반환합니다.

public virtual 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 virtual 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>
override this.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 Overridable 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

에서 반환operationTask<TResult> 의 결과 형식입니다.

매개 변수

state
TState

작업에 전달될 상태입니다.

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

형식 TResult의 시작 작업을 반환하는 함수입니다.

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

예외가 throw된 경우에도 작업이 성공했는지 여부를 테스트하는 대리자입니다.

cancellationToken
CancellationToken

재시도 작업을 취소하는 데 사용되는 취소 토큰이지만 이미 진행 중이거나 이미 성공적으로 완료된 작업은 아닙니다.

반환

Task<TResult>

원래 작업이 성공적으로 완료되면 완료될 작업입니다(처음 또는 일시적 오류를 다시 시도한 후). 일시적이지 않은 오류로 인해 작업이 실패하거나 재시도 제한에 도달하면 반환된 태스크에 오류가 발생하여 예외가 관찰되어야 합니다.

구현

예외

구성된 재시도 횟수가 지나면 작업이 성공하지 못했습니다.

설명

자세한 내용 과 예제는 연결 복원력 및 데이터베이스 재시도 를 참조하세요.

적용 대상

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

지정된 비동기 작업을 실행하고 결과를 반환합니다.

public virtual 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>
override this.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 Overridable 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

에서 반환operationTask<TResult> 의 결과 형식입니다.

매개 변수

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

형식 TResult의 시작 작업을 반환하는 함수입니다.

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

예외가 throw된 경우에도 작업이 성공했는지 여부를 테스트하는 대리자입니다.

state
TState

작업에 전달될 상태입니다.

cancellationToken
CancellationToken

재시도 작업을 취소하는 데 사용되는 취소 토큰이지만 이미 진행 중이거나 이미 성공적으로 완료된 작업은 아닙니다.

반환

Task<TResult>

원래 작업이 성공적으로 완료되면 완료될 작업입니다(처음 또는 일시적 오류를 다시 시도한 후). 일시적이지 않은 오류로 인해 작업이 실패하거나 재시도 제한에 도달하면 반환된 태스크에 오류가 발생하여 예외가 관찰되어야 합니다.

구현

예외

구성된 재시도 횟수 후에 작업이 성공하지 못한 경우 throw됩니다.

적용 대상