똑똑해진느낌/C#

[C#] 크로스 스레드 작업이 잘못되었습니다. 해결 방법

찐쿵 2019. 8. 26. 14:27

VB 나 C# 으로 스레드 및 폼 작업을 하다보면 아래와 같은 현상을 종종 만날 수 있다!
System.InvalidOperationException ]

원인 : 공통으로 사용하는 오브젝트에 스레드들이 접근하게끔 프로그래밍이 되어 있어 발생하는 오류 
(다른 스레드에서 컨트롤에 접근하려 할 때, 예외 발생 !!)

해결 방법 : 
1) Delegate 와 Invoke를 따로 선언하고 호출해줌 ... 
   (http://msdn.microsoft.com/ko-kr/library/ms171728(v=vs.100).aspx)
2) BackgroundWorker 로 다중 스레딩 사용
  ( 상위와 동일 )
3) "CheckForIllegalCrossThreadCalls = False" 지정 
  (임시방편, 크로스 스레드 오류 무시)

CheckForIllegalCrossThreadCalls = False