Как продлить время ожидания приложения? - PullRequest
0 голосов
/ 11 мая 2018

У меня есть устаревшее приложение, которое обрабатывает вводимые пользователем данные. Приложение вылетает на одном компьютере без предупреждения, проблема не отображается для всех других пользователей. Я попросил пользователя прислать мне скриншот своего средства просмотра событий, поскольку событие AppDomain UnhandledException не показало всплывающего сообщения. Я получил ошибку:

Программа перестала взаимодействовать с Windows и была закрыта. Чтобы узнать, доступна ли дополнительная информация о проблеме, просмотрите историю ошибок на панели управления «Безопасность и обслуживание».

Идентификатор события - 1002, я прочитал, что мне нужно перенести большинство трудоемких операций в фоновый поток, но приложение слишком велико, чтобы реорганизовать его менее чем за неделю.

Есть ли способ разрешить очень длинные зависания пользовательского интерфейса для этого приложения? Я имею в виду более 5 минут

1 Ответ

0 голосов
/ 11 мая 2018

Проверьте этот пост на Tweaks.com

Операционная система имеет установленный период времени, в течение которого программа должна быть заморожена, прежде чем она будетвремя вышло.Часто это число слишком велико.Но в некоторых обстоятельствах он установлен слишком низко.В зависимости от того, выполняет ли программа много вычислений в фоновом режиме, компьютер может подумать, что время истекло.Чтобы предотвратить это, увеличьте значение таймаута в реестре.

  1. Запустите Regedit.Если вы не знакомы с regedit, ознакомьтесь с нашими часто задаваемыми вопросами о том, как начать работу.
  2. Перейдите к HKEY_CURRENT_USER \ Панель управления \ Рабочий стол
  3. Выберите HungAppTimeout из списка справа.
  4. Прямо на нем и выберите Изменить.
  5. Измените значение на новое значение времени ожидания.
  6. Перезагрузите компьютер.

Редактировать1:

К сожалению, это может не работать в Windows 10, поскольку это было опубликовано для Windows XP.


Редактировать 2:

Согласно этой записи на tenforums.com это может все еще работать.

Когда приложения (задачи) не закрываются (закрываются) автоматически при перезапуске, завершении работы или выходе из Windows 10, система будет ждать 5 секунд (HungAppTimeout) по умолчанию до завершения.Появится диалоговое окно задач с просьбой отменить или закрыть перечисленные приложения и перезапустить их в любом случае, закрыть в любом случае или выйти из системы в любом случае.

Если вы не сделаете выбор в диалоговом окне «Завершить задачу» до истечения 1-минутного тайм-аутаWindows 10 автоматически отменит перезагрузку, завершение работы или выход из системы по умолчанию.

Например, если у вас открыт блокнот с несохраненными изменениями при перезагрузке, завершении работы или выходе из системы.

HungAppTimeout также указывает, как долго (по умолчанию 5 секунд) система ожидает завершения пользовательских процессов после того, как пользователь нажимает / нажимает кнопку «Завершить задачу» в диспетчере задач.Если этот порог превышен, появляется диалоговое окно «Завершить задачу» с сообщением о том, что процесс не ответил.

В этом руководстве показано, как указать значение HungAppTimeout, в течение которого система ожидает, пока не появится диалоговое окно «Завершить задачу».для вашей учетной записи или всех пользователей в Windows 10.


Вы должны попробовать.Скорее всего, вы найдете обходной путь 10s̶̶o̶̶l̶̶u̶̶t̶̶i̶̶o an a.

Имейте в виду, что это не долгое время решение.Вам нужно будет переместить этот код в фоновый режим.

Примечание. Я бы не рекомендовал изменять эти значения программно.Избегайте реализации обходных путей в вашем коде.

Как отмечал VisualVincent (спасибо!), Вы также должны помнить, чтобы вернуть эти значения обратно к их оригиналам, как только вы выпустите исправление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...