파일을 복사 할 때 탐색기와 마찬가지로 비동기 적으로 실행할 수없는 긴 프로세스가 있습니다. 진행 대화 상자가 있습니다. 대화 상자를 모달로 표시 한 다음 작업을 수행합니다 (파일을 복사하여 추상적으로 유지). 진행 대화 상자를 업데이트하고 Application.DoEvents()를 사용하여 메시지를 펌핑하여 응용 프로그램 메인 프레임을 페인팅 및 응답 가능하게 유지합니다.모달 진행 대화 상자가 열려있는 동안 "Application.DoEvents"를 호출해도 괜찮습니까?
대화 상자가 모달이므로 사용자는보기 또는 취소 이외의 작업을 수행 할 수 없습니다. 즉, 메뉴 항목을 선택하거나 단추를 클릭 할 수 없습니다.
나는 항상 재진입하려는 의도가 아닌 코드를 다시 입력 할 수 있기 때문에 Application.DoEvents가 극히 악조리라고 생각했습니다. 그러나이 경우에는 진행 대화 상자가 모달이므로 나쁜 또는 위험한 해결책 인 이유를 볼 수 없습니다.
나는 뭔가를 내려다 보지 않습니까, 아니면 Application.DoEvents를 사용하여 모달 대화 상자와 관련하여 합법적 인 메시지를 보내고 있습니까?
적어도 백그라운드 스레드에서 실행할 수없는 이유는 무엇입니까? 백그라운드 작업자 만 사용하고 Control.BeginInvoke를 사용하여 UI를 업데이트하면됩니다. – BFree
[일부] (http://stackoverflow.com/a/5183623/825024) [읽기] (http://stackoverflow.com/a/1115410/825024). – Otiel