public static void DoEvents()
{
try
{
bool local__DoEventsEngaged = false;
lock (MainWindow._DoEvents_locker)
{
local__DoEventsEngaged = MainWindow._DoEvents_engaged;
if (!local__DoEventsEngaged)
MainWindow._DoEvents_engaged = true;
}
if (!local__DoEventsEngaged)
{
// hack-y, but it lets the window message pump process user inputs to keep the UI alive on the main thread
Application.DoEvents();
}
lock (MainWindow._DoEvents_locker)
{
MainWindow._DoEvents_engaged = false;
}
}
catch { }
}