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