COM+ 리소스 디스펜서 스레드 유형

COM+ 리소스 디스펜서에 대한 호출은 다음 스레드 유형 중 하나에서 발생할 수 있습니다.

  • 아파트 스레드(STA)
  • 무료 스레드(MTA)
  • 비 COM 스레드(애플리케이션 또는 디스펜서 관리자 가비지 수집기 스레드)

리소스 디스펜서가 COM 개체가 아닌 경우 언제든지 스레드에서 도착하는 호출을 처리할 수 있어야 합니다. 리소스 디스펜서가 COM 개체인 경우 COM 개체는 모두의 스레딩 모델에 등록되어야 합니다. 이를 통해 STA 또는 MTA 스레드는 스레드 스위치 없이 리소스 디스펜서를 만들고 사용할 수 있습니다.

리소스 디스펜서가 다른 COM 개체(예: Out-of-process 리소스 관리자)를 만들고 사용하는 경우 리소스 디스펜서는 이 다른 COM 개체에 대한 여러 프록시를 유지하고 호출 스레드에 적절한 프록시를 사용하여 개체에 대한 호출이 이루어지도록 해야 할 수 있습니다. 리소스 디스펜서가 이 개체를 만들 때 참조를 마샬링하고 저장합니다. 개체를 다시 호출하기 전에 호출 스레드에 대한 프록시를 만들려면 unmarshal을 해제해야 합니다.

스레드 ID에서 프록시 포인터로 맵을 유지하여 이러한 스레드별 프록시를 캐시하는 것이 더 효율적일 수 있습니다. 이 맵은 프로세스에서 새 스레드가 사용됨에 따라 확장됩니다.

COM+ 리소스 디스펜서 개념