Вам придется свернуть свой собственный многопоточный цикл;если вы остановитесь либо Update
, либо Draw
, другой тоже будет остановлен.Другое соображение заключается в том, что если ваше окно каким-либо образом затенено (в средах, отличных от DWM; например, с перекрывающим его окном), остановка Draw
оставит области вашего окна неокрашенными.этот;то, что вы будете делать, - это запускать Thread
при первом вызове Update
и затем использовать ManualResetEvent
для синхронизации двух.
Гораздо более надежный вариант - визуализировать всю сцену в RenderTarget2D
когда сцена обновляется;если сцена не была изменена с момента последнего вызова Update
или Draw
, просто визуализируйте RenderTarget2D
вместо всей сцены.Это все еще бесконечный цикл, но он стремится к вашему требованию (даже если он не соответствует ему).