Поделиться через


Нейтральные квартиры

COM+ представляет нейтральные квартиры для упрощения программирования в многопоточных средах. Нейтральные квартиры — это предпочтительная модель для COM+ для компонентов без пользовательского интерфейса.

В прошлом, чтобы предотвратить узкие места, разработчики COM+, требующие масштабируемости сервера, должны были реализовать компоненты с бесплатным потоком; однако модели свободного потока сложно реализовать, так как они должны работать с взаимоблокировкой доступа. В нейтральных квартирах объекты следуют рекомендациям для многопоточных квартир, но могут выполняться в любом виде потока. При выполнении потока в нейтральной квартире контекст объекта получается без вызова коммутатора потока.

Каждый процесс может иметь только одну нейтральную квартиру. Чтобы выбрать нейтральную квартиру, используйте следующий параметр реестра:

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID
   {CLSID}
      InprocServer32
         ThreadingModel = Neutral

Компоненты, имеющие пользовательские интерфейсы, должны продолжать использовать однопоточные квартиры в качестве предпочтительной модели. Чтобы выбрать однопотоковую квартиру, используйте следующий параметр реестра:

ThreadingModel = Apartment