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