Partager via


communication Single-Threaded et multithread

Un client ou un serveur qui prend en charge les appartements monothreads et multithreads 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 d’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 monothread s’appliquent aux threads marqués comme modèle d’appartement, et toutes les informations sur les appartements multithreads s’appliquent à tous les threads marqués comme libres.threads. Les règles de thread d’appartement s’appliquent à la communication inter-appartements, exigeant que les pointeurs d’interface soient marshalés entre les appartements avec des appels à CoMarshalInterfaceInterfaceInStream et CoGetInterfaceAndReleaseStream, comme décrit dans Single-Threaded Appartements.

Note

Certaines considérations particulières s’appliquent lors du traitement des serveurs in-process. Pour plus d’informations, consultez In-Process problèmes de thread de serveur.

 

accès aux interfaces entre appartements

choix du modèle de threading

appartements multithreads

Problèmes de thread de serveur In-Process

processus , threads et appartements

Single-Threaded Appartements