[STAThread] 어트리뷰트는 뭘 의미하는거지?

using System;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;

namespace Petzold.DisplaySomeText
{
    public class DisplaySomeText : Window
    {
        [STAThread]
        public static void Main()
        {
            Application app = new Application();
            app.Run(new DisplaySomeText());
        }
        public DisplaySomeText()
        {
            Title = "Display Some Text";
            Content = "Content can be simple text!";
        }
    }
}

와 같은 C# 코드에서 [STAThread] 가 의미하는 바는 :
기본적으로, VS .NET에 의해 만들어진 응용 프로그램의 Main()메소드에는 [STAThread] 어트리뷰트가 첨가되어 있다.
이 어트리뷰트는 해당 응용 프로그램이 COM형식을 이용하는 경우에 (단지 이 경우에만 해당하는 것인데) 해당 응용 프로그램이
단일 스레드 아파트(single threaded apartment, STA) 모델로 설정되어야 한다는 것을 런타임에게 알려주는 역할을 한다.
해당 응용 프로그램에서 COM 형식을 이용하지 않는다면, [STAThread] 어트리뷰트는 무시되기 때문에 삭제해도 무방하다.
이 글의 관련글
  • Oracle Application Server 설치 후 host, domain, ip변경 방법
  • 넷빈즈(NetBeans) 메뉴의 폰트를 깔끔하게 해보자
  • 손쉽게 파비콘( favicon.ico )을 만들어 봅시다. (4)
  • 몇가지 사소한 넷빈즈 팁
  • JVM에서 얻어오는 시간이 시스템시간과 차이가 날 때.
  • double 값을 문자열 형식의 퍼센트값으로 변환하기
  • finalize 메소드의 오버라이딩을 자제해야 하는 이유.
  • CLASSPATH에 없는 클래스 로딩
  • 자바 날짜/시간 계산 예제 코드 :: Java Date Code Snippet (3)
  • Java에 OpenID 적용 관련 아티클
  • Vector에 대한 소고
  • Runtime 클래스를 이용한 외부 프로그램 호출
  • 2007/09/28 16:41 2007/09/28 16:41
    Trackback Address:http://www.yunsobi.com/blog/trackback/243
    [로그인][오픈아이디란?]