private Resolution Run(TilePropagator propagator) { var next = DateTime.Now + TimeSpan.FromMinutes(1); while (true) { for (var i = 0; i < 100; i++) { var status = propagator.Step(); if (status != Resolution.Undecided) { return(status); } } if (DateTime.Now > next) { System.Console.WriteLine($"Progress {propagator.GetProgress():p2}"); next = DateTime.Now + TimeSpan.FromMinutes(1); } } }