> 백엔드 개발 > C++ > 활발한 배경 노동자와 양식을 우아하게 닫는 방법은 무엇입니까?

활발한 배경 노동자와 양식을 우아하게 닫는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2025-01-31 17:01:10
원래의
844명이 탐색했습니다.

이벤트 배경 작업자와 함께 창의 우아한 폐쇄 How to Gracefully Close a Form with an Active BackgroundWorker?

창이 업데이트 창 UI의 배경 작업자를 초기화하면 비정상적이거나 죽은 자물쇠가 발생하지 않고 창을 닫는 것이 까다로워 질 수 있습니다. 이 문제는 창의 폐쇄 사건에서 배경 노동자를 막을 때 직면 한 문제를 강조합니다.

>> 질문 : handleclosingEvent에서 배경 워크를 취소하기 위해 를 사용하면 를 호출 할 때

가 발생할 수 있습니다.

handleclosingEvent에서 배경 워크가 완료되기를 기다리는 것은 가 돌아 오지 않기 때문에 죽은 자물쇠가 발생합니다.

솔루션 : 죽은 자물쇠와 비정상적인 보안 방법을 피하는 것은 Formclosing 이벤트 자체를 취소하는 것입니다. 다음 단계는 솔루션을 설명합니다 :

사용자의 마감 요청을 추적하기 위해 A 로고를 정의하십시오.
    커버에서 배경 작업자가 바쁜지 확인하십시오.
  1. 바쁘면 bgWorker.CancelAsync()를 true로 설정하고 백그라운드 워크를 취소하고 Invoke()를 설정하여 창이 닫히지 않도록하십시오. ObjectDisposedException
  2. 이벤트 처리 프로그램에서 를 확인하십시오. 그것이 사실이라면, 창을 닫으십시오. Invoke() 조작을 끄고 로고를 False로 재설정하십시오.

샘플 코드 : 이 방법을 사용하면 BackgroundWorker가 UI를 적극적으로 업데이트하더라도 비정상적이거나 죽은 자물쇠 없이도 창을 우아 할 수 있습니다.

위 내용은 활발한 배경 노동자와 양식을 우아하게 닫는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿