창문 창이 우아하게 닫힐 때 배경 작업 스레드
Windows 창에서 BackgroundWorker를 사용할 때 일반적인 문제는 창을 닫을 때 작업 스레드를 중지하는 것입니다. 그러나 윈도우 닫기 이벤트 처리 프로세스에서 를 호출하면 비정상적이거나 교착 상태가 발생할 수 있습니다.
질문 1 : 호출 호출의 ObjectDisposexception
Window Closing Event Processing Program에서 직접 호출되면 후속 호출 호출은
이상을 던질 수 있습니다. 창이 방출되고 메인 스레드가 종료 되었기 때문입니다.
질문 2 : bgworker가 완료되었을 때 교착 상태
이벤트 처리 프로세스를 마치는 과정에서 대기 중 bgWorker.CancelAsync()
완료하면 작업 스레드가 완료되는 것을 방지하기 위해 호출 호출이 여전히 진행 중이기 때문에 죽은 자물쇠가 발생할 수 있습니다.
솔루션 : 창의 폐쇄 및 배경 작업 라인을 조정하여 완료합니다.
이러한 문제를 해결하기 위해서는보다 안정적인 방법이 필요합니다.
는 가 여전히 실행중인 경우 이벤트 처리 프로그램을 닫는 창에서 를 설정하십시오.
로고를 설정하여 사용자의 닫기 요청을 나타냅니다.
이벤트 처리 프로그램에서 로고를 확인하십시오. 설정된 경우 창에서 로 전화하십시오. bgWorker.CancelAsync()
ObjectDisposedException
이 방법은 창을 완성하여 이벤트를 닫고 의 완료를 통해 이상과 죽은 자물쇠를 방지 할 수 있습니다. 위 내용은 Windows 양식을 닫을 때 배경 작업자를 안전하게 중지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!