Microsoft MVP성태의 닷넷 이야기
.NET Framework: 13. Main 메서드에 붙은 STAThread 의미 [링크 복사], [링크+제목 복사],
조회: 22913
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

다음은 제가 "microsoft.public.kr.dotnet.csharp"에 올렸던 답변 내용입니다.

-----------------------------------------------------------------------

Attribute죠.

VS.NET 2003 도움말 기준으로.
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1042/cpref/html/frlrfsystemstathre
adattributeclasstopic.htm
위의 토픽을 참조하시면 도움이 될 것입니다.

간단히 말해서, STAThread 모델에서는 COM 개체를 생성한 스레드만이 그 COM
개체를 액세스할 수 있으며, 다른 스레드에서 그 COM 개체의 메서드를
호출하려면 마샬링이라는 절차를 거쳐서 액세스해야만 합니다. 즉, 해당 COM
개체가 제공하는 메서드를 2개의 스레드가 동시에 접근하지 못하도록 보증합니다.
따라서 해당 COM 개체는 code 수준에서 MultiThread에 관한 동기화 코드를
구현하지 않아도 멀티 스레드상에서도 안전하게 접근할 수 있습니다.

좀 더 깊은 지식을 원하신다면, C#이 아닌 COM에 관한 공부를 하시기 바랍니다.
STAThreadAttribute는 .NET에서 COM과의 interop을 위해 도입되었기 때문에.
^^

COM Apartment에 관련된 VS.NET 2003 도움말 토픽은 다음에서 찾아볼 수
있습니다.
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1042/com/htm/aptnthrd_8po3.htm

--
======= (c) .NETXpert ==========
url : http://www.dotnetxpert.com
eml : kevin@dotnetxpert.com
msn: kevin025@magicn.com

MCSD.NET
==============================

"무위헌" <anonymous@discussions.microsoft.com> wrote in message
news:3dad01c48fc7$ca1c6960$a301280a@phx.gbl...
> C#.NET 초보자입니다.
> 처음 프로젝트를 생성하면 소스에,
>
> [STAThread]
>
> 와 같은 것이 삽입되어 있는데 이것을 무엇이라고 하고(예를
> 들어 컴파일러 지시어??, 매크로?? ...) 그 역할이 어떤 것인
> 지 아는분 좀 한 수 부탁합니다.
>
> 감사합니다.









[최초 등록일: ]
[최종 수정일: 7/10/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 106  107  108  109  110  111  [112]  113  114  115  116  117  118  119  120  ...
NoWriterDateCnt.TitleFile(s)
11158정성태3/22/201719359디버깅 기술: 85. Windbg - SOS 디버깅 사례 System.NullReferenceException 예외 추적
11157정성태3/22/201722692.NET Framework: 648. Dictionary<TKey, TValue>를 deep copy하는 방법파일 다운로드1
11156정성태3/21/201723964.NET Framework: 647. 닷넷(C#) 코드로 인증서 요청 코드 만드는 방법파일 다운로드1
11155정성태3/21/201724237.NET Framework: 646. SslStream의 CipherAlgorithm 선택이 가능할까요?파일 다운로드1
11154정성태3/5/201730567VC++: 109. DLL에서 STL 객체를 인자/반환값으로 갖는 함수를 제공할 때, 그 함수를 외부에서 사용하는 경우 비정상 종료한다면? [2]파일 다운로드1
11153정성태3/5/201730088VC++: 108. DLL에 정의된 C++ template 클래스의 복사 생성자 문제파일 다운로드1
11152정성태3/4/201724313VC++: 107. VirtualAlloc, HeapAlloc, GlobalAlloc, LocalAlloc, malloc, new의 차이점 [1]파일 다운로드1
11151정성태3/3/201724510VC++: 106. DLL 개발자가 주의해야 할 Secure CRT 함수 사용 [1]파일 다운로드1
11150정성태2/21/201720458.NET Framework: 645. Visual Studio Fakes 기능에서 Shim... 클래스가 생성되지 않는 경우 [5]
11149정성태2/21/201724296오류 유형: 378. A 64-bit test cannot run in a 32-bit process. Specify platform as X64 to force test run in X64 mode on X64 machine.
11148정성태2/20/201723406.NET Framework: 644. AppDomain에 대한 단위 테스트 시 알아야 할 사항
11147정성태2/19/201721838오류 유형: 377. Windows 10에서 Fake 어셈블리를 생성하는 경우 빌드 시 The type or namespace name '...' does not exist in the namespace 컴파일 오류 발생
11146정성태2/19/201721109오류 유형: 376. Error VSP1033: The file '...' does not contain a recognized executable image. [2]
11145정성태2/16/201722566.NET Framework: 643. 작업자 프로세스(w3wp.exe)가 재시작되는 시점을 알 수 있는 방법 - 두 번째 이야기 [4]파일 다운로드1
11144정성태2/6/201725965.NET Framework: 642. C# 개발자를 위한 Win32 DLL export 함수의 호출 규약 (부록 1) - CallingConvention.StdCall, CallingConvention.Cdecl에 상관없이 왜 호출이 잘 될까요?파일 다운로드1
11143정성태2/5/201723503.NET Framework: 641. [Out] 형식의 int * 인자를 가진 함수에 대한 P/Invoke 호출 방법파일 다운로드1
11142정성태2/5/201731363.NET Framework: 640. 닷넷 - 배열 크기의 한계 [2]파일 다운로드1
11141정성태1/31/201725827.NET Framework: 639. C# 개발자를 위한 Win32 DLL export 함수의 호출 규약 (4) - CLR JIT 컴파일러의 P/Invoke 호출 규약 [1]파일 다운로드1
11140정성태1/27/201721209.NET Framework: 638. RSAParameters와 RSA파일 다운로드1
11139정성태1/22/201724104.NET Framework: 637. C# 개발자를 위한 Win32 DLL export 함수의 호출 규약 (3) - x64 환경의 __fastcall과 Name mangling [1]파일 다운로드1
11138정성태1/20/201722532VS.NET IDE: 113. 프로젝트 생성 시부터 "Enable the Visual Studio hosting process" 옵션을 끄는 방법 - 두 번째 이야기 [3]
11137정성태1/20/201720678Windows: 135. AD에 참여한 컴퓨터로 RDP 연결 시 배경 화면을 못 바꾸는 정책
11136정성태1/20/201720308오류 유형: 375. Hyper-V 내에 구성한 Active Directory 환경의 시간 구성 방법 - 두 번째 이야기
11135정성태1/20/201721137Windows: 134. Windows Server 2016의 작업 표시줄에 있는 시계가 사라졌다면? [1]
11134정성태1/20/201728720.NET Framework: 636. System.Threading.Timer를 이용해 타이머 작업을 할 때 유의할 점 [5]파일 다운로드1
11133정성태1/20/201724794.NET Framework: 635. C# 개발자를 위한 Win32 DLL export 함수의 호출 규약 (2) - x86 환경의 __fastcall [1]파일 다운로드1
... 106  107  108  109  110  111  [112]  113  114  115  116  117  118  119  120  ...