Single-Threaded und Multithreadkommunikation
Ein Client oder Server, der Singlethread- und Multithread-Apartments unterstützt, verfügt über ein Multithreadapartment, das alle als Freethreading initialisierten Threads und ein oder mehrere Singlethread-Apartments enthält. Schnittstellenzeiger müssen zwischen Apartments gemarshallt werden, können aber ohne Marshalling innerhalb eines Apartments verwendet werden. Aufrufe von -Objekten in einem Singlethread-Apartment werden von COM synchronisiert. Aufrufe von Objekten im Multithread-Apartment werden von COM nicht synchronisiert.
Alle Informationen zu Singlethread-Apartments gelten für die als Apartmentmodell markierten Threads, und alle Informationen zu Multithread-Apartments gelten für alle Threads, die als Freethreading markiert sind. Apartmentthreadingregeln gelten für die Kommunikation zwischen Apartments und erfordern, dass Schnittstellenzeiger zwischen Apartments mit Aufrufen von CoMarshalInterThreadInterfaceInStream und CoGetInterfaceAndReleaseStreamgemarshallt werden, wie in Singlethread-Apartmentbeschrieben.
Hinweis
Beim Umgang mit In-Process-Servern gelten einige besondere Überlegungen. Weitere Informationen finden Sie unter In-Process Server Threading Issues.