Форма зависает при закрытии, минимизации или максимизации - PullRequest
1 голос
/ 14 декабря 2011

У меня есть приложение Windows Forms c #, которое отлично работает на большинстве машин. Но на некоторых машинах при закрытии дочерних форм (не в приложении MDI) все приложение зависает на несколько секунд, пока не закроется окно. Это происходит только при нажатии кнопки «X» в верхнем правом углу. Если у меня есть кнопка в форме, которая просто вызывает this.Close();, окно закрывается нормально. У меня есть около 20 машин, на которых это работает нормально, но я уже видел 2, на которых эта проблема возникает (одна - Windows 7, другая - XP). Если я запускаю код из Visual Studio на этих машинах, окна закрываются нормально. Это происходит только при запуске из EXE. При закрытии основной формы приложения нет зависания. Просто ребенок формируется. Я просто использую

Form1 f = new Form1();
f.Show();

чтобы открыть окно. Я пробовал это на пустых тестовых формах в том же приложении, где нет кода, и происходит то же самое. С другими приложениями Windows Forms на тех же компьютерах эта проблема не возникает. Есть что-то конкретное в этом приложении, которое вызывает это, но я не могу сузить это. Я знаю, что на этот вопрос сложно ответить, не видя всей кодовой базы, но кто-нибудь еще сталкивался с подобной проблемой в прошлом? Спасибо.

РЕДАКТИРОВАТЬ: Некоторые дополнительные заметки

Кнопки свертывания, разворачивания и восстановления вызывают одинаковые зависания при нажатии любой из них.

Интересно, что если щелкнуть значок окна в верхнем левом углу и выбрать «Закрыть», «Свернуть» или «Развернуть», все они будут работать без задержек или зависаний.

1 Ответ

0 голосов
/ 14 декабря 2011

Убедитесь, что в событие закрытия формы поставлено

Application.Exit(); //use to stop application processes

Перейдите в диспетчер задач и перейдите на вкладку процессов и проверьте, не вызывает ли ваше приложение высокую загрузку ЦП.Может быть, еще есть экземпляр вашего приложения, которое все еще работает.

С уважением

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