728x90
반응형

InvalidOperationException 2

C# - System.InvalidOperationException 크로스 스레드 작업이 잘못되었습니다

안녕하세요, MoonLight입니다. ​ C#에서 평소처럼 Control에 접근해서 이런저런 작업을 하려고 하는데, 아래와 같은 Error를 만나는 경우가 있습니다. ​ ​ ​ 비교적 설명이 자세히 나와 있는데요, Control이 만들어진 Thread가 아닌, 다른 Thread에서 해당 Control에 Access하려고 하는 경우에 ​ 이런 Error가 발생합니다. ​ 저 같은 경우엔 UI를 만든 Main Thread가 아닌, 작업 Thread에서 Main Thread UI를 변경하고자 할 때 이런 Error를 만났습니다. ​ 해결 방법은 Simple합니다. delegate를 사용하면 됩니다. ​ delegate는 주로 Windows Forms Application에서 사용되는데, UI를 다루는 과정에서..

Development Tip 2024.03.27

C# - "System.InvalidOperationException: 컬렉션이 수정되었습니다" 오류

안녕하세요, MoonLight입니다. ​ C#에서 Multi Thread or Task 작업 중에 'System.InvalidOperationException: 컬렉션이 수정되었습니다. 열거 작업이 실행되지 않을 수도 있습니다.'라는 Exception을 보신적이 있을 것입니다. ​ Multi Thread 혹은 Multi Task을 사용하다 보면 여러 Thread or Task에서 공통으로 사용해야 하는 값들이 있을 것입니다. ​ 흔히 이것을 공유 자원이라고 하고 공유 자원을 여러 Thread에서 잘 사용할 수 있도록 조절하는 것을 동기화라고 하죠. ​ 결론적으로, 동기화 문제를 해결하는 방법은 하나의 Thread에서 공유 자원을 사용하고 있으면 다른 Thread들에서는 사용하지 못하게 막는 것입니다. ​..

Development Tip 2024.02.24
728x90
반응형