Я унаследовал устаревшее приложение, которое теперь должно работать в Windows 10. Во время тестирования мы обнаружили, что часть программы (которая представляет собой дочернее окно, размещенное в виде панели инструментов) лишь частично отрисовывается при запуске программы — более половины справа от панели инструментов будет рисовать только черный цвет. Во время выполнения исправление заключалось в изменении размера всего окна, что приводило к изменению размера/перерисовке окна панели инструментов. В конце концов мы обнаружили, что если мы установим «Отключить масштабирование дисплея», это полностью предотвратит ошибку (до сих пор проверено с достоверностью чуть больше 1 из 10 000, что для меня достаточно хорошо).
Вопрос в том:
эта ошибка возникла только с вероятностью от 1/12 до 1/20 (что я определил из видео наших автоматических тестов программы, которые включали 185 возможностей для возникновения ошибки. Никакой закономерности возникновения обнаружено не было). Мне никогда не приходилось сталкиваться с такой ошибкой, и поэтому мне интересно: учитывая очевидную случайность ошибки и исправление, что происходит? Состояние гонки между рендерингом растрового изображения, которое Windows затем масштабирует для «высокого DPI», и функциями, которые размещают панель инструментов?