Apartmentos neutros
COM+ introduz apartamentos neutros para simplificar a programação em ambientes multithreaded. O apartamento neutro é o modelo preferido para COM+ para componentes sem interface de usuário.
No passado, para evitar gargalos, os desenvolvedores COM+ que exigiam escalabilidade do servidor tinham que implementar componentes de thread livre; No entanto, os modelos de threading livre são complicados de implementar porque devem lidar com o acesso intertravado. Em apartamentos neutros, os objetos seguem as diretrizes para apartamentos multithreaded, mas podem ser executados em qualquer tipo de thread. Quando um thread está sendo executado em um apartamento neutro, o contexto do objeto é recebido sem causar uma alternância de thread.
Cada processo pode ter apenas um apartamento neutro. Para selecionar um apartamento neutro, use a seguinte configuração do Registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID
{CLSID}
InprocServer32
ThreadingModel = Neutral
Os componentes que têm interfaces de usuário devem continuar a usar apartamentos de thread único como o modelo preferido. Para selecionar um apartamento de thread único, use a seguinte configuração do Registro:
ThreadingModel = Apartamento