Single-Threaded en multithreaded Communication
Een client of server die zowel een-threaded als multithreaded appartementen ondersteunt, heeft één multithreaded appartement, met alle threads geïnitialiseerd als vrije thread en een of meer appartementen met één thread. Interface pointers moeten tussen appartementen worden marshaled, maar kunnen worden gebruikt zonder marshaling binnen een appartement. Oproepen naar objecten in een appartement met één thread worden gesynchroniseerd door COM. Oproepen naar objecten in het multithreaded appartement worden niet gesynchroniseerd door COM.
Alle informatie over appartementen met één thread is van toepassing op de threads die zijn gemarkeerd als appartementsmodel en alle informatie over multithreaded appartementen is van toepassing op alle threads die zijn gemarkeerd als vrije thread. Regels voor het threaden van appartementen zijn van toepassing op communicatie tussen appartementen, waardoor interfaceaanwijzers tussen appartementen met aanroepen naar CoMarshalInterThreadInterfaceInStream en CoGetInterfaceAndReleaseStream, zoals beschreven in Single-Threaded Apartments.
Notitie
Enkele speciale overwegingen zijn van toepassing bij het omgaan met in-processervers. Zie In-Process serverthreadingproblemenvoor meer informatie.
Verwante onderwerpen