Цикл рендеринга Direct2D запускается в отдельном потоке по эстетическим причинам. Это обеспечивает плавную и мгновенную анимацию независимо от изменения размера окна или других блоков перекачки сообщений в основном потоке. Этот поток рендеринга остается заблокированным большую часть времени (используя Monitor.Wait
< / a>), если сцена не становится недействительной из-за наведения мыши, прокрутки, изменения размера окна и т. д.
Я не вижу способа отменить презентацию после того, как код рисования вызывает BeginDraw
на цели рендеринга. Если окно некорректно определенным образом, сцена все равно будет отброшена и перерисована. Что я могу сделать, чтобы вернуться к «чистому листу», готовому к следующему BeginDraw
, не доработав и не представив сцену? Могу ли я вызвать ошибку рендеринга, чтобы прервать поток рисования, который пропустил бы презентацию?