2015년 7월 6일 월요일

C# Winform: "크로스 스레드" 오류가 났을 때, "CheckForIllegalCrossThreadCalls = false" 로 간단히 해결 할 수 있다.

C# 으로 작업하다보면, "크로스 스레드 오류" 라는 것을 가끔 만날 수 있다.



간단히 말해 공통으로 사용하는 오브젝트에 스레드들이 지멋대로 접근하게끔 프로그래밍이 되어 있다고 하는 오륜데, 예전에는 그냥 허용되어 있다가 나중에 안되게 막힌 경우라 예전 소스들을 참고 할때 참 귀찮다.

이럴땐, 원칙적으로는 delegate 와 invoke 를 사용해야 하겠으나...

별로 중요한 모듈도 아니고, 데이터가 좀 꼬인다고 해서 별 문제가 없는 경우라면, 간단히 해결 할 수 있다.

그냥 "CheckForIllegalCrossThreadCalls = false;" 를 지정해 주면된다.


이렇게 하면 "크로스 스레드 오류" 는 그냥 무시해 버린다.
물론, 그리 좋은 방법은 아니므로, 가능하면 정상적으로 처리하는 편이 좋다.