Приложение Windows Form с элементом управления ActiveX не закрывает дочернюю форму только в производственной среде - PullRequest
2 голосов
/ 08 февраля 2011

У меня есть приложение Windows Form, которое создает окно и отслеживает записи в очереди SQL.Когда что-то обнаруживается, он порождает поток, который открывает другую форму, которая запускает другой поток для выполнения работы, содержащей элемент управления ActiveX.Когда элемент управления завершен с его работой, я удаляю его из формы, удаляю его и вызываю сборщик мусора.Затем я вызываю Close(), используя делегата (потому что он в потоке).
Вот здесь и начинается проблема.На моем устройстве dev все работает;дочерняя форма исчезает, и у меня остается основная форма, с которой я начал.Однако, когда я пытаюсь запустить его на сервере Windows 2003, он не работает.Детская форма не исчезает.Это замерзает.Я могу переместить его, но попытка закрыть его вызывает диалоговое окно «Завершить сейчас» (основная форма также зависает и показывает «Не отвечает», если я нажимаю кнопку).
Я попытался войти в систему ChildForm_FormClosedи я вижу запись в журнале событий, поэтому она застревает где-то между тем, когда она думает, что она закрыта, и когда она фактически закрыта ...?

Что может быть причиной этого?
Iподумал, что это может быть связано с тем, что элемент управления ActiveX неправильно установлен на компьютере, но эта часть приложения работает и не останавливается до тех пор, пока элемент управления не будет удален.

1 Ответ

0 голосов
/ 27 октября 2011

Оказалось, что это была проблема со сторонним элементом управления ActiveX.У него была ошибка, из-за которой он не хотел закрываться, когда ему говорили.

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