using System.Threading.Tasks;
public static void Main() {
var timeoutPolicy = Policy
TimeSpan.FromMilliseconds(10),
Polly.Timeout.TimeoutStrategy.Pessimistic
var circuitBreaker = Policy
.Handle<Polly.Timeout.TimeoutRejectedException>()
var circuitBreakerWrappingTimeout = circuitBreaker
.WrapAsync(timeoutPolicy);
async cancellationToken => { Console.WriteLine("fallback triggered"); })
.WrapAsync(circuitBreakerWrappingTimeout);
Console.WriteLine("Circuit state before execution: " + circuitBreaker.CircuitState);
policy.ExecuteAsync(() => Task.Delay(-1)).Wait();
Console.WriteLine("Circuit state after execution: " + circuitBreaker.CircuitState);