즐겁게 개발을...

개발보다 게임이 더 많이 올라오는 것 같은...

개발/C#

[2021.06] C#에서 Cross-Thread Operation not valid 오류

다물칸 2021. 6. 9. 15:45
728x90
반응형

안녕하세요. 공통모듈을 보통 DLL로 만들어서 호출하는데 이벤트를 발생시켜 DLL을 사용하는 클래스에서 클래스내 컴포넌트나 다른 클래스에 값을 변경하고자 할 때 이런 오류가 가끔(자주가 아니라 더 잡기 힘드나, 그나마 쉬운) 발생하는데 그것을 해결할 방법입니다. 

 

마소 사이트 참조: https://docs.microsoft.com/ko-kr/dotnet/desktop/winforms/controls/how-to-make-thread-safe-calls-to-windows-forms-controls?view=netframeworkdesktop-4.8 

 

스레드로부터 안전한 컨트롤 호출 - Windows Forms .NET Framework

스레드로부터 안전한 방식으로 크로스 스레드 컨트롤을 호출 하 여 앱에서 다중 스레딩을 구현 하는 방법에 대해 알아봅니다.

docs.microsoft.com

 

요기서는 Delegate(대리자)를 만들어서 좀 복잡한 방법으로 알려주는데 아래 코드를 보면 간단합니다. 

 

Invoke(new Action(() =>
{
  cboItem.SelectedItem(value);
}));

이 코드를 보니 JavaScript가 생각나네요. 오늘의 간단한 팁이었습니다. 

반응형