У меня есть приложение Windows Forms c #, которое отлично работает на большинстве машин. Но на некоторых машинах при закрытии дочерних форм (не в приложении MDI) все приложение зависает на несколько секунд, пока не закроется окно. Это происходит только при нажатии кнопки «X» в верхнем правом углу. Если у меня есть кнопка в форме, которая просто вызывает this.Close();
, окно закрывается нормально. У меня есть около 20 машин, на которых это работает нормально, но я уже видел 2, на которых эта проблема возникает (одна - Windows 7, другая - XP). Если я запускаю код из Visual Studio на этих машинах, окна закрываются нормально. Это происходит только при запуске из EXE. При закрытии основной формы приложения нет зависания. Просто ребенок формируется. Я просто использую
Form1 f = new Form1();
f.Show();
чтобы открыть окно. Я пробовал это на пустых тестовых формах в том же приложении, где нет кода, и происходит то же самое. С другими приложениями Windows Forms на тех же компьютерах эта проблема не возникает. Есть что-то конкретное в этом приложении, которое вызывает это, но я не могу сузить это. Я знаю, что на этот вопрос сложно ответить, не видя всей кодовой базы, но кто-нибудь еще сталкивался с подобной проблемой в прошлом? Спасибо.
РЕДАКТИРОВАТЬ: Некоторые дополнительные заметки
Кнопки свертывания, разворачивания и восстановления вызывают одинаковые зависания при нажатии любой из них.
Интересно, что если щелкнуть значок окна в верхнем левом углу и выбрать «Закрыть», «Свернуть» или «Развернуть», все они будут работать без задержек или зависаний.