많은 UI 구성 요소에서 호출 스레드가 필요하므로 해당 스레드는 STA여야 합니다. 해결 방법

'System.InvalidOperationException' 형식의 예외가 PresentationCore.dll에서 발생했지만 사용자 코드에서 처리되지 않았습니다. 추가 정보: 많은 UI 구성 요소에서 호출 스레드가 필요하므로 해당 스레드는 STA여야 합니다.
많은 UI 구성 요소에서 호출 스레드가 필요하므로 해당 스레드는 STA여야 합니다.

'많은 UI 구성 요소에서 호출 스레드가 필요하므로 해당 스레드는 STA여야 합니다.' 오류를 해결하려면 스레드가 애플리케이션에 대한 COM(Component Object Model) 스레딩 모델이 싱글 스레디드 아파트(STA : single-threaded apartment) 임을 나타내도록 속성을 설정하면 됩니다.

using System.Runtime.InteropServices;

namespace System
{    
    [AttributeUsage(AttributeTargets.Method)]
    [ComVisible(true)]
    public sealed class STAThreadAttribute : Attribute
    {        
        public STAThreadAttribute();
    }
}

다음은 속성을 설정한 예제 메인 메서드 자료입니다.

[STAThread]
public static void Main()
{
    App app = new App();
    app.InitializeComponent();
    app.Run();
}

댓글