using System.Threading.Tasks;
public static async Task Main()
var asyncTimeoutOptimistic = Policy.TimeoutAsync(
TimeoutStrategy.Optimistic,
"onTimeout is fired".Dump();
return Task.CompletedTask;
await asyncTimeoutOptimistic.ExecuteAsync(async (ct) =>
await Task.Delay(5_000, ct);
"Decorated operation is finished".Dump();
}, CancellationToken.None);
catch(TimeoutRejectedException)
"Timeout has kicked in".Dump();