[c#] 크로스-스레드 예외 해결하기
lock 제일 간단한 방법이다. 그러나 디버그 빌드로 실행하면 오류로 처리되고 릴리스 빌드를 한 때에만 제대로 작동한다. 이는 Control.CheckForIllegalCrossThreadCalls 프라퍼티 때문인데 이게 디버그 빌드를 할 때에는 true가 기본 값이고 릴리스 빌드를 할 때에는 false가 기본 값이다. 실행이 되는지 여부가 중요한 게 아니라 제대로 된 결과가 나오느냐 하는 게 문제다. 비록 아래 예제는 간단하여 의도한 대로 실행이 되지만 lock을…