你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

ServicePartitionClient<TCommunicationClient>.InvokeWithRetryAsync 方法

定义

重载

InvokeWithRetryAsync(Func<TCommunicationClient,Task>, Type[])

调用给定的 函数,针对 doNotRetryExceptionTypes 中引发的异常以外的异常重试。 对于 doNotRetryExceptionTypes 中不存在的异常,CommunicationClientFactory 的 ReportOperationExceptionAsync () 方法控制是否应重试异常。 如果在 Asp.Net/UI 线程中调用此方法,则建议以下方法避免死锁:1 如果调用的 Api 是异步的 ,则使用 ConfigureAwait(Boolean) 通过将调用 API 设置为 false 来不恢复不在不对齐上下文中。 2 或使用 Task.Run 在线程池线程中调用此 API。

InvokeWithRetryAsync(Func<TCommunicationClient,Task>, CancellationToken, Type[])

调用给定的 函数,针对 doNotRetryExceptionTypes 中引发的异常以外的异常重试。 对于 doNotRetryExceptionTypes 中不存在的异常,CommunicationClientFactory 的 ReportOperationExceptionAsync () 方法控制是否应重试异常。 如果在 Asp.Net/UI 线程中调用此方法,则建议以下方法避免死锁:1 如果调用的 Api 是异步的 ,则使用 ConfigureAwait(Boolean) 通过将调用 API 设置为 false 来不恢复不在不对齐上下文中。 2 或使用 Task.Run 在线程池线程中调用此 API。

InvokeWithRetryAsync<TResult>(Func<TCommunicationClient,Task<TResult>>, Type[])

调用给定的 函数,针对 doNotRetryExceptionTypes 中引发的异常以外的异常重试。 对于 doNotRetryExceptionTypes 中不存在的异常,CommunicationClientFactory 的 ReportOperationExceptionAsync () 方法控制是否应重试异常。 如果在 Asp.Net/UI 线程中调用此方法,则建议以下方法避免死锁:1 如果调用的 Api 是异步的 ,则使用 ConfigureAwait(Boolean) 通过将调用 API 设置为 false 来不恢复不在不对齐上下文中。 2 或使用 Task.Run 在线程池线程中调用此 API。

InvokeWithRetryAsync<TResult>(Func<TCommunicationClient,Task<TResult>>, CancellationToken, Type[])

调用给定的 函数,针对 doNotRetryExceptionTypes 中引发的异常以外的异常重试。 对于 doNotRetryExceptionTypes 中不存在的异常,CommunicationClientFactory 的 ReportOperationExceptionAsync () 方法控制是否应重试异常。 如果在 Asp.Net/UI 线程中调用此方法,则建议以下方法避免死锁:1 如果调用的 Api 是异步的 ,则使用 ConfigureAwait(Boolean) 通过将调用 API 设置为 false 来不恢复不在不对齐上下文中。 2 或使用 Task.Run 在线程池线程中调用此 API。

InvokeWithRetryAsync(Func<TCommunicationClient,Task>, Type[])

调用给定的 函数,针对 doNotRetryExceptionTypes 中引发的异常以外的异常重试。 对于 doNotRetryExceptionTypes 中不存在的异常,CommunicationClientFactory 的 ReportOperationExceptionAsync () 方法控制是否应重试异常。 如果在 Asp.Net/UI 线程中调用此方法,则建议以下方法避免死锁:1 如果调用的 Api 是异步的 ,则使用 ConfigureAwait(Boolean) 通过将调用 API 设置为 false 来不恢复不在不对齐上下文中。 2 或使用 Task.Run 在线程池线程中调用此 API。

public System.Threading.Tasks.Task InvokeWithRetryAsync (Func<TCommunicationClient,System.Threading.Tasks.Task> func, params Type[] doNotRetryExceptionTypes);
member this.InvokeWithRetryAsync : Func<'CommunicationClient, System.Threading.Tasks.Task (requires 'CommunicationClient :> Microsoft.ServiceFabric.Services.Communication.Client.ICommunicationClient)> * Type[] -> System.Threading.Tasks.Task
Public Function InvokeWithRetryAsync (func As Func(Of TCommunicationClient, Task), ParamArray doNotRetryExceptionTypes As Type()) As Task

参数

func
Func<TCommunicationClient,Task>

正在调用的函数

doNotRetryExceptionTypes
Type[]

服务分区客户端不应重试的异常

返回

表示未完成操作的任务。

适用于

InvokeWithRetryAsync(Func<TCommunicationClient,Task>, CancellationToken, Type[])

调用给定的 函数,针对 doNotRetryExceptionTypes 中引发的异常以外的异常重试。 对于 doNotRetryExceptionTypes 中不存在的异常,CommunicationClientFactory 的 ReportOperationExceptionAsync () 方法控制是否应重试异常。 如果在 Asp.Net/UI 线程中调用此方法,则建议以下方法避免死锁:1 如果调用的 Api 是异步的 ,则使用 ConfigureAwait(Boolean) 通过将调用 API 设置为 false 来不恢复不在不对齐上下文中。 2 或使用 Task.Run 在线程池线程中调用此 API。

public System.Threading.Tasks.Task InvokeWithRetryAsync (Func<TCommunicationClient,System.Threading.Tasks.Task> func, System.Threading.CancellationToken cancellationToken, params Type[] doNotRetryExceptionTypes);
member this.InvokeWithRetryAsync : Func<'CommunicationClient, System.Threading.Tasks.Task (requires 'CommunicationClient :> Microsoft.ServiceFabric.Services.Communication.Client.ICommunicationClient)> * System.Threading.CancellationToken * Type[] -> System.Threading.Tasks.Task
Public Function InvokeWithRetryAsync (func As Func(Of TCommunicationClient, Task), cancellationToken As CancellationToken, ParamArray doNotRetryExceptionTypes As Type()) As Task

参数

func
Func<TCommunicationClient,Task>

正在调用的函数

cancellationToken
CancellationToken

取消令牌

doNotRetryExceptionTypes
Type[]

服务分区客户端不应重试的异常

返回

表示未完成操作的任务。

适用于

InvokeWithRetryAsync<TResult>(Func<TCommunicationClient,Task<TResult>>, Type[])

调用给定的 函数,针对 doNotRetryExceptionTypes 中引发的异常以外的异常重试。 对于 doNotRetryExceptionTypes 中不存在的异常,CommunicationClientFactory 的 ReportOperationExceptionAsync () 方法控制是否应重试异常。 如果在 Asp.Net/UI 线程中调用此方法,则建议以下方法避免死锁:1 如果调用的 Api 是异步的 ,则使用 ConfigureAwait(Boolean) 通过将调用 API 设置为 false 来不恢复不在不对齐上下文中。 2 或使用 Task.Run 在线程池线程中调用此 API。

public System.Threading.Tasks.Task<TResult> InvokeWithRetryAsync<TResult> (Func<TCommunicationClient,System.Threading.Tasks.Task<TResult>> func, params Type[] doNotRetryExceptionTypes);
member this.InvokeWithRetryAsync : Func<'CommunicationClient, System.Threading.Tasks.Task<'Result> (requires 'CommunicationClient :> Microsoft.ServiceFabric.Services.Communication.Client.ICommunicationClient)> * Type[] -> System.Threading.Tasks.Task<'Result>
Public Function InvokeWithRetryAsync(Of TResult) (func As Func(Of TCommunicationClient, Task(Of TResult)), ParamArray doNotRetryExceptionTypes As Type()) As Task(Of TResult)

类型参数

TResult

调用的函数的结果

参数

func
Func<TCommunicationClient,Task<TResult>>

正在调用的函数

doNotRetryExceptionTypes
Type[]

服务分区客户端不应重试的异常

返回

Task<TResult>

表示未完成操作的任务。 Task 的结果是参数中给定的函数的结果。

适用于

InvokeWithRetryAsync<TResult>(Func<TCommunicationClient,Task<TResult>>, CancellationToken, Type[])

调用给定的 函数,针对 doNotRetryExceptionTypes 中引发的异常以外的异常重试。 对于 doNotRetryExceptionTypes 中不存在的异常,CommunicationClientFactory 的 ReportOperationExceptionAsync () 方法控制是否应重试异常。 如果在 Asp.Net/UI 线程中调用此方法,则建议以下方法避免死锁:1 如果调用的 Api 是异步的 ,则使用 ConfigureAwait(Boolean) 通过将调用 API 设置为 false 来不恢复不在不对齐上下文中。 2 或使用 Task.Run 在线程池线程中调用此 API。

public System.Threading.Tasks.Task<TResult> InvokeWithRetryAsync<TResult> (Func<TCommunicationClient,System.Threading.Tasks.Task<TResult>> func, System.Threading.CancellationToken cancellationToken, params Type[] doNotRetryExceptionTypes);
member this.InvokeWithRetryAsync : Func<'CommunicationClient, System.Threading.Tasks.Task<'Result> (requires 'CommunicationClient :> Microsoft.ServiceFabric.Services.Communication.Client.ICommunicationClient)> * System.Threading.CancellationToken * Type[] -> System.Threading.Tasks.Task<'Result>
Public Function InvokeWithRetryAsync(Of TResult) (func As Func(Of TCommunicationClient, Task(Of TResult)), cancellationToken As CancellationToken, ParamArray doNotRetryExceptionTypes As Type()) As Task(Of TResult)

类型参数

TResult

调用的函数的结果

参数

func
Func<TCommunicationClient,Task<TResult>>

正在调用的函数

cancellationToken
CancellationToken

取消令牌

doNotRetryExceptionTypes
Type[]

服务分区客户端不应重试的异常

返回

Task<TResult>

表示未完成操作的任务。 Task 的结果是参数中给定的函数的结果。

例外

操作已取消。

适用于