2013-06-27 3 views
2

C# 콘솔 응용 프로그램 용 코드를 작성했습니다. 클립 보드 값을 파일에 복사하고 오류없이 실행합니다.C#의 콘솔 프로그램에서 [STAThread] 사용

다른 코드와 함께 다른 C# 프로젝트에서 사용하고 싶습니다.

내가 class{}[STAThread]를 사용하지만 그것은 내게 오류 제공 :

:: Attribute 'STAThread' is not valid on this declaration type. It is only valid on 'method' declarations.

내가 무엇을 할 수 있습니까?

+0

속성은 * after *가 아닌 * 수정할 항목 앞에 배치됩니다. 그래서, 이전에'[STAThread]'* *를'class' 다음에 배치했다면, 우연히 (우연히) 파일의 올바른 위치에 나타나서 클래스의 첫 번째 선언 멤버 *가 수정되어야하는 것. –

+0

매우 엄격합니다. [STAThread]는 프로그램의 Main() 진입 점에있을 때만 영향을줍니다. 시작하기 전에 다른 스레드를 만들고 Thread.SetApartmentState()를 사용하는 것은 기술적으로 가능합니다. –

답변

7

[STAThread]은 진입 점 메서드 (클래스가 아님) 위에 놓을 수 있으며 라이브러리에는 한 번만 넣을 수 있습니다. 이 코드를 복사하려는 프로젝트 유형은 무엇입니까? 그것은 심지어 STA 속성을 요구합니까? 메서드는 정적입니까?

[STAThread]을 메서드가 아닌 다른 것에 넣는 중입니다.

코드를 게시하십시오.