Типы потоков диспенсера COM+
Вызовы в диспенсер ресурсов COM+ могут возникать в одном из следующих типов потоков:
- Поток квартиры (STA)
- Свободный поток (MTA)
- Поток, отличный от COM (приложение или поток сборщика мусора диспетчера диспенсера)
Если диспенсер ресурсов не является COM-объектом, он должен в любое время обрабатывать вызовы, поступающие из любого потока. Если диспенсер ресурсов является COM-объектом, объект COM должен быть зарегистрирован в модели потоков обоих. Это позволяет потокам STA или MTA создавать и использовать диспенсер ресурсов без коммутатора потоков.
Если диспенсер ресурсов создает и использует другой COM-объект (например, диспетчер ресурсов вне процесса), то диспенсер ресурсов может потребоваться сохранить несколько прокси-серверов к этому другому com-объекту и убедиться, что вызовы к объекту выполняются с помощью соответствующего прокси-сервера для вызывающего потока. Когда диспенсер ресурсов создает этот объект, он маршалирует и сохраняет ссылку. Перед повторной вызовом объекта он должен отменить маршал, чтобы создать прокси-сервер для вызывающего потока.
Это может быть более эффективным для кэширования этих прокси-серверов для каждого потока, сохраняя карту от идентификатора потока к указателю прокси-сервера. Эта карта расширяется по мере использования новых потоков в процессе.
См. также