728x90

발생 전 상황
실시간 타이머를 사용 하려고 하였으나, .exe 종료와 함께 액세스 할 수 없다는 파업창이 발생 하였습니다.

 

발생 원인
데이터를 수신하는 스레드에서 프로그램 화면을 갱신시 문제가 발생.



원인 해결 방법
Dispatcher.Invoke(DispatcherPriority, Delegate)을 사용하여 주세요.
 - [[여기]] 선택하시면 더욱 자세한 설명을 볼 수 있습니다.
 - Dispatcher가 연결된 스레드에서 지정된 대리자를 동기적으로 실행합니다.
그러면 메인스레드와 동기화 되어 진행이 됩니다.

 

마무리.
txthour.Text = sqptime.ToString();
Dispatcher.Invoke(DispatcherPriority.Normal, new Action(delegate { txthour.Text = sqptime.ToString(); }));
으로 변경하여 진행 하였더니, 이상없이 잘 진행 되었습니다.

 

네임페이스는 System.Windows.Threading 입니다.

728x90

+ Recent posts