Системы.invalidoperationexcepti...
Привет,
Я случайно наблюдаю это
System.InvalidOperationException: Value Dispose() cannot be called while doing CreateHandle().
исключение при нажатии кнопки закрытия Winform.
При нажатии кнопки Close я просто закрываю форму, вызывая функцию form Close.
Я определил EventHandler для операции on Form "Closed". В EventHandler я останавливаю таймер и вызываю таймер.Функция Dispose (). Я определяю и запускаю этот таймер при загрузке формы. Таймер имеет тип System.Окна.Формы.Таймер().
Поскольку это таймер WinForms, я считаю, что он будет выполняться потоком пользовательского интерфейса. Перед остановкой таймера я также проверяю, включен ли он или нет. Если он включен, я остановлю его, иначе я избавлюсь от него.
Существует несколько таймеров одного и того же типа, определенных в приложении. Возможно ли, что один таймер каким-то образом влияет на другой?.
Примечание, приведенное в ссылке MSDN Таймер.Метод Остановки (System.Окна.Формы)[^] предложите что-нибудь вроде этого.
Любая помощь в разрешении этого исключения приветствуется.
Спасибо.
Что я уже пробовал:
Я отписался от таймера.Поставьте галочку eventhandler, внутри формы закройте и протестируйте то же самое. Но исключение все еще сохраняется.
Philippe Mori
Покажите нам соответствующий код... Очевидно, что если у вас есть такие проблемы, то ваш код неверен, но без кода мы не сможем вам сильно помочь.
Но если у вас есть таймер на форме, то почему бы не сбросить таймер на форму и не позволить фреймворку справиться с утилизацией таймера? Вам нужно будет только отключить таймер, когда форма закрывается/закрывается.
Saiprasad V
Да, я собираюсь снять таймер.Dispose () из обработчика закрытия формы и пусть сборщик мусора сделает все остальное. Спасибо за ваши отзывы.