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
'C#' 카테고리의 다른 글
* .toString 함수를 평가할 때 안전하지 않은 중단을 방지하려면 실행이 허용 된 모든 스레드 (0) | 2020.08.06 |
---|---|
[WPF] 이미지 등록과 이미지 나타내는 방법 (0) | 2020.05.28 |
.NET Framework와 .NET Core의 차이점 (0) | 2020.02.28 |
C# Email 보내기 _소스코드 (0) | 2020.02.17 |
C# 네비게이션 구현하기 (1) | 2020.02.16 |