public static void UntilTrue(Func<bool> condition, int interval, TimeSpan timeout, string description)
var maxTime = DateTime.Now + timeout;
while (DateTime.Now < maxTime)
throw new Exception("Polling timed out after {timeout} for: {description}");
public static void Main()
Func<bool> condition = () => true;
UntilTrue(condition, 50, TimeSpan.FromMinutes(2.0), "Testing truth.");
Console.WriteLine("Got to here.");