STAThreadAttribute 클래스

정의

애플리케이션에 대한 COM 스레딩 모델이 STA(단일 스레드 아파트)임을 나타냅니다.

public ref class STAThreadAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Method)]
public sealed class STAThreadAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Method)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class STAThreadAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Method)>]
type STAThreadAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Method)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type STAThreadAttribute = class
    inherit Attribute
Public NotInheritable Class STAThreadAttribute
Inherits Attribute
상속
STAThreadAttribute
특성

설명

진입점 메서드(Main()C# 및 Visual Basic 메서드)에 이 특성을 적용합니다. 다른 메서드에는 영향을 주지 않습니다. 코드에서 시작하는 스레드의 아파트 상태를 설정하려면 스레드를 Thread.SetApartmentState 시작하기 전에 해당 또는 Thread.TrySetApartmentState 메서드를 사용합니다.

참고

COM 스레딩 모델에 대한 개요는 COM 스레딩 모델 이해 및 사용을 참조하세요.

COM 스레딩 모델 COM interop를 사용 하는 애플리케이션에만 적용 됩니다. COM 스레딩 모델은 단일 스레드 아파트 또는 다중 스레드 아파트로 설정할 수 있습니다. 애플리케이션 스레드는 스레드가 실제로 COM 구성 요소를 호출 하는 경우에 COM interop에 대 한 초기화 됩니다. COM interop을 사용하지 않으면 스레드가 초기화 STAThreadAttribute 되지 않으며 특성이 있는 경우 아무런 효과가 없습니다.

.NET Framework 버전 2.0 부터는 다음 표와 같이 애플리케이션을 개발 하는 언어에 따라 달라 집니다 스레딩 모델 COM interop에 대 한 기본값입니다.

언어 COM 아파트 모델
C# 다중 스레드 아파트
C++ 다중 스레드 아파트
Visual Basic 단일 스레드 아파트

이러한 기본값을 변경 하려면 사용 합니다 STAThreadAttribute 애플리케이션 또는 호출에 대 한 스레딩 모델을 설정 하는 특성을 Thread.SetApartmentState 또는 Thread.TrySetApartmentState 메서드를 특정 스레드에 대 한 스레딩 모델을 설정 하려면 스레드를 시작 하기 전에 합니다. C++에서는 /CLRTHREADATTRIBUTE 링커 옵션을 사용하여 아파트 모델을 지정할 수도 있습니다.

ASP.NET 애플리케이션 설정 해야 합니다 ASPCompat 특성을 @ Page 지시문을 true 페이지를 STA 스레드 풀에서 처리 하도록.

다음은 특성을 사용하여 STAThreadAttribute 스레딩 모델을 단일 스레드 아파트로 명시적으로 설정하려는 몇 가지 경우입니다.

  • Windows Forms 앱을 개발하고 있습니다. Windows Forms 앱은 클립보드 또는 Windows 공통 대화 상자와 같은 Windows 시스템 구성 요소와 통신하거나 끌어서 놓기 기능과 같은 시스템 기능을 사용하는 경우 단일 스레드여야 합니다. C# Windows Forms 애플리케이션 템플릿을 자동으로 추가 된 STAThreadAttribute C# 프로젝트에 대 한 특성입니다. 단일 스레드 아파트 모델은 Visual Basic 기본값이므로 특성이 필요하지 않습니다.

  • Visual Basic 라이브러리를 호출하는 C# 앱을 개발하고 있으며, 이 라이브러리는 COM interop에 의존합니다. 단일 스레드 아파트 모델은 Visual Basic 기본값이므로 특성을 사용하여 STAThreadAttribute 앱의 스레딩 모델을 단일 스레드로 변경해야 합니다.

  • 애플리케이션에서는 단일 스레드 아파트 모델을 사용 하는 COM 구성 요소를 호출 합니다.

생성자

STAThreadAttribute()

STAThreadAttribute 클래스의 새 인스턴스를 초기화합니다.

속성

TypeId

파생 클래스에서 구현된 경우 이 Attribute에 대한 고유 식별자를 가져옵니다.

(다음에서 상속됨 Attribute)

메서드

Equals(Object)

이 인스턴스가 지정된 개체와 같은지를 나타내는 값을 반환합니다.

(다음에서 상속됨 Attribute)
GetHashCode()

이 인스턴스의 해시 코드를 반환합니다.

(다음에서 상속됨 Attribute)
GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
IsDefaultAttribute()

파생 클래스에서 재정의된 경우 이 인스턴스 값이 파생 클래스에 대한 기본값인지 여부를 표시합니다.

(다음에서 상속됨 Attribute)
Match(Object)

파생 클래스에서 재정의된 경우 이 인스턴스가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다.

(다음에서 상속됨 Attribute)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

이름 집합을 해당하는 디스패치 식별자 집합에 매핑합니다.

(다음에서 상속됨 Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

인터페이스의 형식 정보를 가져오는 데 사용할 수 있는 개체의 형식 정보를 검색합니다.

(다음에서 상속됨 Attribute)
_Attribute.GetTypeInfoCount(UInt32)

개체에서 제공하는 형식 정보 인터페이스의 수를 검색합니다(0 또는 1).

(다음에서 상속됨 Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

개체에서 노출하는 메서드와 속성에 대한 액세스를 제공합니다.

(다음에서 상속됨 Attribute)

적용 대상

추가 정보