У меня есть приложение XNA 3.1 на Windows 7 x64 с VS 2008. Через ~ 7 секунд окно станет серым, если игра не имеет фокуса (иногда!). Название добавляет Not Responding
. Если игра имеет фокус, окно может слегка изменить положение на экране, и значок приложения на моем трее переместится, как будто он открывает новую программу.
Это происходит только в течение доли секунды, а затем значок приложения возвращается в исходное положение. Это делается как в режиме отладки, так и в режиме выпуска. Это странно, потому что, насколько я могу судить, приложение не застряло ни в одном цикле. Если я захожу в VS и приостанавливаю код, пока он не отвечает, он показывает мне Instance.Run в классе Program, как и должно быть. Я попытался приостановить его в тот самый момент;
Стек вызовов выглядит следующим образом:
[Во сне, подождите, или присоединиться]
Внешний код. ->
mscorlib.dll! System.Threading.Thread.Sleep (int millisecondsTimeout) + 0x5 байт
Microsoft.Xna.Framework.Game.dll! Microsoft.Xna.Framework.Game.Tick () + 0x98 байт
Microsoft.Xna.Framework.Game.dll! Microsoft.Xna.Framework.Game.HostIdle (отправитель объекта ...
Microsoft.Xna.Framework.Game.dll! Microsoft.Xna.Framework.GameHost.OnIdle () + 0x3d байт
... и т. д.
Если я нажму «запустить» во время паузы, программа будет работать и разморозится. Приложение не разморозится, как только перейдет в этот режим без ответа. Все звуки продолжают работать, когда он не отвечает.
Кроме того, у меня есть метод, который переопределяет событие OnDeactivated()
, и оно вызывается, когда приложение теряет отзывчивость, даже если приложение будет фокусироваться. Я попытался установить последние версии драйверов для моей видеокарты, но это не помогло решить эту проблему. Эта проблема также возникает при запуске исполняемого файла без VS. Как я уже говорил, эта проблема возникает ~ 75% времени ... в противном случае она работает нормально.
Я нашел только одно сообщение на форуме по этой проблеме:
http://forums.create.msdn.com/forums/p/56743/346180.aspx
It looks like it was never resolved.