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