Single-Threaded et communication multithread

Un client ou un serveur qui prend en charge les appartements à thread unique et multithread aura un appartement multithread, contenant tous les threads initialisés en tant que threads libres, et un ou plusieurs appartements à thread unique. Les pointeurs d’interface doivent être marshalés entre les appartements, mais peuvent être utilisés sans marshaling dans un appartement. Les appels aux objets dans un appartement monothread sont synchronisés par COM. Les appels aux objets de l’appartement multithread ne seront pas synchronisés par COM.

Toutes les informations sur les appartements à thread unique s’appliquent aux threads marqués comme modèle d’appartement, et toutes les informations sur les appartements multithread s’appliquent à tous les threads marqués comme étant libres. Les règles de thread d’appartement s’appliquent à la communication entre appartements, exigeant que les pointeurs d’interface soient marshalés entre les appartements avec des appels à CoMarshalInterThreadInterfaceInStream et CoGetInterfaceAndReleaseStream, comme décrit dans Appartements à thread unique.

Notes

Certaines considérations spéciales s’appliquent lors de la gestion des serveurs in-process. Pour plus d’informations, consultez Problèmes de thread de serveur in-process.

 

Accès aux interfaces entre les appartements

Choix du modèle threading

Appartements multithreads

Problèmes de thread de serveur in-process

Processus, threads et appartements

Appartements à thread unique