diff --git a/src/qt/qt_main.cpp b/src/qt/qt_main.cpp index 9b146ec1f..3d32a4889 100644 --- a/src/qt/qt_main.cpp +++ b/src/qt/qt_main.cpp @@ -149,9 +149,6 @@ main_thread_fn() if (dopause) ack_pause(); -#ifdef Q_OS_WINDOWS - timeBeginPeriod(1); -#endif plat_delay_ms(1); } } @@ -160,9 +157,6 @@ main_thread_fn() for (uint8_t i = 1; i < GFXCARD_MAX; i ++) { if (gfxcard[i]) { ui_deinit_monitor(i); -#ifdef Q_OS_WINDOWS - timeBeginPeriod(1); -#endif plat_delay_ms(500); } } diff --git a/src/qt/qt_ui.cpp b/src/qt/qt_ui.cpp index b24731f55..4f7d9c7ba 100644 --- a/src/qt/qt_ui.cpp +++ b/src/qt/qt_ui.cpp @@ -59,7 +59,15 @@ extern "C" { void plat_delay_ms(uint32_t count) { +#ifdef Q_OS_WINDOWS + // On Win32 the accuracy of Sleep() depends on the timer resolution, which can be set by calling timeBeginPeriod + // https://learn.microsoft.com/en-us/windows/win32/api/timeapi/nf-timeapi-timebeginperiod + timeBeginPeriod(1); + Sleep(count); + timeEndPeriod(1); +#else QThread::msleep(count); +#endif } wchar_t *