본문 바로가기

C#

STAThread

728x90

C#은 기본적으로 MTA로 운영되는데, STAThread라고 설정하지 않으면 기본적으로 MTAThread 방식으로 운영된다.
STA를 사용하는 경우는 싱글 Thread로만 동작되는 COM 객체를 사용하는 경우인데

  • 드래그 드랍 기능
  • 클립보드 관련 기능
  • OpenDialog, SaveFileDialog
  • 웹브라우저 컨트롤

등과 같이 시스템 기능을 사용하는 경우 STAThread로 동작 되어야 한다.
또, COM을 직접 사용하는 것이 아니어도 .NET Framework의 일부 기능을 COM일 사용하고 있기 때문에, 그러한 기능을 사용하는 경우에도 반드시 STA로 할 필요가 있다고 한다.

[출처]
COM 설명 : http://something-is-code.tistory.com/33
STA 사용하는 경우 참고 : https://racer42.tistory.com/entry/TIPS-STAThread%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80
메소드 실행 코드 : https://www.sysnet.pe.kr/Default.aspx?mode=2&sub=0&pageno=2&detail=1&wid=12623
STA, MTA 설명 : https://pdfslide.net/education/c-sta-mta-.html?page=5

STA, MTA.pdf
1.96MB

 

728x90