COM+ 스레딩 모델
COM+ 스레딩 모델은 아파트라는 개체 컬렉션을 중심으로 설계되었습니다. 아파트는 다음 그림과 같이 프로세스에 포함된 컨텍스트의 컬렉션입니다.
아파트 내의 통화는 직접적이고, 아파트(out-of-process)에서의 통화는 간접적이고 프록시 및 스텁 코드가 필요합니다. 아파트는 동기화 및 재진입 속성이 다른 개체를 허용하며 단일 스레드 및 다중 스레드의 두 가지 범주가 있습니다. STA(단일 스레드 아파트)의 개체는 만들어진 특정 스레드에서 실행됩니다. STA는 한 번에 하나의 메서드만 실행할 수 있도록 허용합니다. 사용자 인터페이스용으로 설계되었으며 Microsoft Windows 메시지 큐를 사용하여 들어오는 호출을 처리합니다.
MTA(다중 스레드 아파트)의 개체는 모든 스레드에서 실행되며 여러 메서드가 동시에 발생할 수 있습니다. MTA는 암시적으로 재진입을 지원합니다.
COM+ 클래스는 COM+가 적절한 아파트에서 개체를 만들 수 있도록 하는 ThreadingModel 속성으로 표시됩니다. 개체가 만들어지는 아파트를 확인하기 위해 CoCreateInstance 는 ThreadingModel 속성을 사용합니다.
스레드는 COM+를 사용하려면 CoInitializeEx 를 호출해야 합니다. 이렇게 하면 올바른 아파트와 컨텍스트 내에 만들어집니다. 기본 스레드 아파트는 CoInitializeEx에서 호출한 첫 번째 STA로 결정됩니다. 일반적으로 프로세스의 기본 스레드와 연결됩니다. CoInitializeEx 는 다음 플래그를 설정하여 스레드에 필요한 아파트의 유형을 나타냅니다.
- COINIT_MULTITHREADED - 단일 다중 스레드 아파트에서 스레드를 찾습니다.
- COINIT_APARTMENTTHREADED - 스레드를 새 STA에 배치합니다.
이 섹션의 다음 topics COM+에서 스레딩 모델 및 아파트 사용에 대한 자세한 정보를 제공합니다.
관련 항목