주 폼과 팝업 창에서 데이터를 읽는 응용 프로그램이 있습니다. 내 응용 프로그램의 기본 양식에서 ASCII로 실시간 직렬 통신을 읽습니다. 내 팝업 창에서 내 프로그램은 해당 데이터를 분석하고 통과/실패 시나리오를 캡처합니다.프로그램 실행 중에 Windows Forms가 멈 춥니 다.
내 프로그램을 실행할 때 의도 한대로 작동합니다. 그러나 프로그램이 실행 중일 때 (끝내려면 2 분 정도 소요됩니다.) 팝업창을 화면 주위로 움직이거나 기본 응용 프로그램 창을 최소화 할 수 없습니다. 마치 수술이 끝날 때까지 붙어있는 것처럼 보입니다. "응답 없음"메시지가 표시되지 않고 작업 중에 이동/최소화/닫을 수있는 방법을 파악하려고합니다.
답변이 멀티 스레딩입니까? 어떤 도움을 주셔서 감사합니다.
UI를 차단하고 있습니다. 이런 종류의 작업은 별도의 스레드에서 수행해야합니다. 'BackgroundWorker'를 사용하십시오. – etaiso
예, 주 스레드가 잠겨있어 백그라운드 스레드를 사용하려고합니다. –
DataReceived 이벤트 처리기에서 BeginInvoke()를 호출하여 UI 스레드를 너무 자주 숨기는 경우가 있습니다. –