using System.Threading.Tasks;
public static void Main()
var optimisticTimeout = Policy.Timeout(1, TimeoutStrategy.Optimistic);
optimisticTimeout.Execute(ToBeDecoratedMethod);
var pessimisticTimeout = Policy.Timeout(1, TimeoutStrategy.Pessimistic);
pessimisticTimeout.Execute(() => ToBeDecoratedMethod());
catch(TimeoutRejectedException)
Console.WriteLine("Timed out");
public static void ToBeDecoratedMethod()
Console.WriteLine("Before Sleep");
Console.WriteLine("After Sleep");