이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 20162|회답: 0

[출처] {"폐기된 객체에 접근할 수 없습니다.\r\n객체 이름: 'Form1'."}.

[링크 복사]
게시됨 2016. 6. 12. 오후 4:28:41 | | | |

스레드 간 컨트롤을 호출할 때 포맷을 닫을 때 예외를 피하는 방법 폐기된 객체에 접근할 수 없습니다.
스레드 내 스레드 간에 폼을 호출하거나, invoke를 사용해 폼 컨트롤에 값을 할당하거나 속성을 변경할 때, 스레드가 폼을 닫기 전에 종료되지 않았다면, 이와 같은 예외가 항상 나타납니다: 폐기된 객체에 접근할 수 없습니다.
그 이유는 스레드에서 폼 컨트롤이 호출되면 폼이 로그아웃되어 모든 스레드를 종료하기 때문입니다. 이 문제를 해결하기 위해 다음 코드를 추가할 수 있습니다:


더 이상 예외가 나타나지 않습니다.
system.environment.exit(0을 호출하면 어떤 스레드가 강제 종료되든 프로그램을 완전히 종료할 수 있으며, 프로그램이 매우 깔끔하게 종료됩니다.



폼 클로징 이벤트

폼이 닫히면 FormClosing 이벤트가 발생합니다. 이 대회는 처리됩니다. 이렇게 하면 해당 양식과 관련된 모든 자원이 자유로워집니다.

이 행사를 취소하면 양식은 계속 열려 있습니다.

폼이 모드 대화상자로 나타나면, 닫기(Close)를 클릭하면 폼이 숨겨지고 DialogResult 속성을 취소(Cancel)로 설정합니다. 일부 이벤트에서 DialogResult 속성을 설정하면, 사용자가 오른쪽 상단의 닫기 버튼을 클릭할 때 DialogResult 값을 덮어쓸 수 있습니다.

FormClosed 이벤트

FormClosed 이벤트는 사용자 또는 애플리케이션 클래스의 Close 또는 Exit 메서드가 폼을 닫은 후에 발생합니다.

이 이벤트를 이용해 폼의 일부 리소스를 해제할 수 있습니다. 이 이벤트를 사용해 입력 폼에 일부 정보를 저장하거나 부모 폼을 업데이트할 수도 있습니다.





이전의:C#/Winform 버전 12306 로그인, 이미지 인증 코드를 수동으로 클릭할 수 있습니다
다음:클라이언트 IP 주소와 포트를 얻기 위한 C# 소켓
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com