public void Run() { while (true) { if (_tick) { BeginInvoke((MethodInvoker) delegate { _controller.Tick(); Refresh(); }); if (!_auto) { _tick = false; } } try { Thread.Sleep(SLEEP_BETWEEN_TICKS); } catch (Exception e) { Console.WriteLine(e); } } }