4using System.Threading.Tasks;
15 public static Task RunAsync(
16 Func<CancellationToken, Task> action,
20 if (action is
null)
throw new ArgumentNullException(nameof(action));
21 Func<CancellationToken, Task> pipeline = action;
22 if (policies is { Length: > 0 })
29 pipeline = c => pol.ExecuteAsync(next, c);
35 public static async Task<T> RunAsync<T>(
36 Func<CancellationToken, Task<T>> action,
40 if (action is
null)
throw new ArgumentNullException(nameof(action));
43 await RunAsync(async c => { result = await action(c).ConfigureAwait(
false); }, ct, policies).ConfigureAwait(
false);
Executes async operations through a pipeline of policies (timeout, retry, bulkhead,...