Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 20162|Ответ: 0

[Источник] {"Невозможно получить доступ к утилизированному объекту.\r\nИмя объекта: 'Form1'."}.

[Скопировать ссылку]
Опубликовано 12.06.2016 16:28:41 | | | |

Как избежать исключений при закрытии формы, когда вызов управления между потоками не может получить доступ к диспонируемым объектам.
При вызове формы между потоками потока и при использовании invoke для присвоения значений или изменения свойств элементов управления, если поток не завершается до закрытия формы, всегда появляется исключение: нельзя получить доступ к распоряжённому объекту.
Причина в том, что при вызове контроля формы в потоке форма уже была выведена из системы, поэтому она выходит из всех потоков до того, как форма будет выйдена. Чтобы решить эту проблему, вы можете добавить следующий код:


больше не будет появляться исключение.
Вызов system.environment.exit(0) может полностью выйти из программы, независимо от того, какой поток вынужден закрыть, завершая программу очень чисто.



Закрывающее событие FormClosing

Когда форма закрыта, происходит событие FormClosed. Это событие решено. Это освобождает все ресурсы, связанные с формой.

Если вы отмените это мероприятие, форма останется открытой.

Когда форма появляется как диалог режима, нажатие «Закрыть» скрывает форму и устанавливает свойство DialogResult на Cancel. Установив свойство DialogResult в некоторых событиях, значение DialogResult можно переопределить, когда пользователь нажимает кнопку закрытия в правом верхнем углу.

FormClosed мероприятие

Событие FormClosed происходит после того, как метод Close или Exit пользователя или класса Application закрывает форму.

Вы можете использовать это событие для публикации некоторых ресурсов формы. Вы также можете использовать это событие для сохранения информации в форме ввода или для обновления родительской формы.





Предыдущий:Вход в C#/Winform версии 12306, вы можете вручную нажать на код проверки изображения
Следующий:C# сокет, чтобы получить IP-адрес клиента и порт
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com