diff --git a/Terminal.Gui/Core/MainLoop.cs b/Terminal.Gui/Core/MainLoop.cs index 43789e2284..e713676461 100644 --- a/Terminal.Gui/Core/MainLoop.cs +++ b/Terminal.Gui/Core/MainLoop.cs @@ -306,9 +306,12 @@ public void MainIteration () Driver.MainIteration (); + bool runIdle = false; lock (idleHandlersLock) { - if (idleHandlers.Count > 0) - RunIdle (); + runIdle = idleHandlers.Count > 0; + } + if (runIdle) { + RunIdle (); } }