Appartements neutres
COM+ introduit des appartements neutres pour simplifier la programmation dans les environnements multithreads. L’appartement neutre est le modèle préféré pour COM+ pour les composants sans interface utilisateur.
Dans le passé, pour éviter les goulots d’étranglement, les développeurs COM+ nécessitant une scalabilité du serveur devaient implémenter des composants à thread libre ; Toutefois, les modèles de thread libre sont compliqués à implémenter, car ils doivent traiter l’accès en verrouillage. Dans les appartements neutres, les objets suivent les instructions pour les appartements multithreads, mais peuvent s’exécuter sur n’importe quel type de thread. Lorsqu’un thread s’exécute dans un appartement neutre, le contexte de l’objet est reçu sans provoquer de commutateur de thread.
Chaque processus ne peut avoir qu’un seul appartement neutre. Pour sélectionner un appartement neutre, utilisez le paramètre de Registre suivant :
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID
{CLSID}
InprocServer32
ThreadingModel = Neutral
Les composants qui ont des interfaces utilisateur doivent continuer à utiliser des appartements à thread unique comme modèle par défaut. Pour sélectionner un appartement à thread unique, utilisez le paramètre de Registre suivant :
ThreadingModel = Appartement