Types de threads du distributeur de ressources COM+
Les appels à un distributeur de ressources COM+ peuvent provenir de l’un des types de threads suivants :
- Thread d’appartement (STA)
- Thread libre (MTA)
- Thread non COM (application ou gestionnaire de distributeur de thread garbage-collector)
Si un distributeur de ressources n’est pas un objet COM, il doit être en mesure de gérer les appels arrivant à partir de n’importe quel thread à tout moment. Si un distributeur de ressources est un objet COM, l’objet COM doit être inscrit auprès d’un modèle de thread de les deux. Cela permet aux threads STA ou MTA de créer et d’utiliser le distributeur de ressources sans commutateur de thread.
Si un distributeur de ressources crée et utilise un autre objet COM (par exemple, un gestionnaire de ressources hors processus), le distributeur de ressources peut avoir besoin de conserver plusieurs proxys sur cet autre objet COM et de s’assurer que les appels à l’objet sont effectués à l’aide du proxy approprié pour le thread appelant. Lorsque le distributeur de ressources crée cet objet, il marshale et enregistre la référence. Avant d’appeler à nouveau l’objet, il doit annuler la création d’un proxy pour le thread appelant.
Il peut être plus efficace de mettre en cache ces proxys par thread en conservant une carte de l’ID de thread vers un pointeur proxy. Cette carte s’étend à mesure que de nouveaux threads sont utilisés dans le processus.
Rubriques connexes