Когда я отлаживаю свою программу, которая состоит из нескольких циклов записи нескольких векторов в векторах, она просто замораживает программу, но не предоставляет никаких сообщений об ошибках вообще. Есть ли у Visual Studio какой-то автоматический тайм-аут, который я испытываю?Visual Studio Time Out
ответ
Проверьте, может быть, ваша программа идет в бесконечный цикл. Или выполняйте тяжелую задачу, которая делает ваш пользовательский интерфейс невосприимчивым (если у вас есть форма окна). Поскольку вы отлаживаете эту программу, тогда почему вы не устанавливаете контрольную точку в коде и не проверяете, где ваша программа вызывает проблему.
И да нет времени для Visual Studio, но для окна программы. Это называется статусом зависания. Когда приложение (или, точнее, поток) создает окно на рабочем столе, оно вступает в неявный контракт с диспетчером окон рабочего стола (DWM) для своевременного обработки оконных сообщений. DWM отправляет сообщения (ввод клавиатуры/мыши и сообщения из других окон, а также сам) в очередь сообщений, зависящую от потока. Поток получает и отправляет эти сообщения через свою очередь сообщений. Если поток не обслуживает очередь, вызывая GetMessage(), сообщения не обрабатываются, и окно зависает: оно не может ни перерисовывать, ни принимать данные от пользователя. Операционная система обнаруживает это состояние, подключая таймер к ожидающим сообщениям в очереди сообщений. Если сообщение не было восстановлено в течение 5 секунд, DWM объявит окно висящим. Вы можете запросить это состояние окна через API IsHungAppWindow().
Обнаружение - это только первый шаг. На этом этапе пользователь по-прежнему не может даже завершить работу приложения - нажатие кнопки X (Close) приведет к сообщению WM_CLOSE, которое будет застревать в очереди сообщений точно так же, как и любое другое сообщение. Диспетчер окон рабочего стола помогает легко скрывать, а затем заменять висящее окно копией «призрак», отображая растровое изображение предыдущей клиентской области исходного окна (и добавляя «Не реагировать» в строку заголовка). Пока поток исходного окна не извлекает сообщения, DWM управляет обоими окнами одновременно, но позволяет пользователю взаимодействовать только с призрачной копией. Используя это окно-призрак, пользователь может только перемещать, сводить к минимуму и, самое главное, закрывать невосприимчивое приложение, но не изменять его внутреннее состояние.
Хорошая статья написана по следующей ссылке. How program window works
- 1. Wait Time Time Out
- 2. MySQL time time out
- 3. Apache + web.py time time out
- 4. Design Time Наручники Visual Studio 2010 против Visual Studio 2008
- 5. socket_select never time out
- 6. Selenium Time out Error
- 7. ASP.NET - Session Time Out
- 8. WCF Time Out Issue
- 9. NSURLSessionUploadTask time out
- 10. Javascript time-out
- 11. Python ftplib time out
- 12. Eclipse Time Out
- 13. CLLocation manager Time Out
- 14. ASP.NET UpdatePanel Time Out
- 15. NSURLConnection time out
- 16. Javascript time out div
- 17. SetCurrentDirectory time out
- 18. Query Time out - sporadic
- 19. application ajax time out
- 20. set_time_limit() time out
- 21. CCnet + NAnt Time Out
- 22. Ошибка Idle Time Out
- 23. HttpRequest time out
- 24. ASP Script time out
- 25. PHP SoapClient time out
- 26. Magmi time out
- 27. Gradle TaskOutputs.upToDateWhen time out?
- 28. Ошибка визуализации Visual Studio Design Time Adapter
- 29. visual studio compile time plug-in
- 30. Visual Studio Just-In-Time Debugging Annoyances