public void RunUntil(LoopDone done) { for (; ;) { RunOnce(); if (!done()) { Thread.Sleep(20); } else { break; } } }
public void RunUntil(LoopDone done) { for (;;) { bool didWork = false; MainLoopRun?.Invoke(ref didWork); if (didWork) { continue; } if (!done()) { Thread.Sleep(20); } else { break; } } }
public static void Run(LoopDone done) { MessagePump.Instance.RunUntil(done); }