C#

Thread 내 에서 OLE 호출시 STAThreadAttribute

world mings 2020. 6. 13. 19:00

C# Thread 하다보니 만들어놓은 쓰레드에 Clipboard를 사용하려고 하니 아래와 같이 오류가 발생했다. 😥

System.Threading.ThreadStateException: 'OLE 호출을 수행하려면 현재 스레드를 STA(단일 스레드 아파트) 모드로 설정해야 합니다. 표시된 STAThreadAttribute가 Main 함수에 있는지 확인하십시오.'

STA(단일 스레드 아파트)모드를 설정해야한다고 나왔는데 이 부분에 대해 처음 겪는 문제라 메모.. 😭

OLE 호출을 하기 위해서는 본인이 설정해놓은 Thread 로 돌아가서,

            _thread1 = new Thread(new ThreadStart(Evnet));
            _thread1.SetApartmentState(ApartmentState.STA);
            _thread1.Start();

SetApartmentState(ApartmentState.STA); 코드를 넣어주면 된다!

다른 방법으로는 Main 메소드에 [STAThread] 를 선언해주는 방법도 있다.

 

오늘도 +1 득하고 가는 코딩 😅