Freigeben über


Single-Threaded und Multithread-Kommunikation

Ein Client oder Server, der sowohl Singlethreaded- als auch Multithread-Wohnungen unterstützt, verfügt über ein Multithread-Apartment, das alle Threads enthält, die als Freithread initialisiert werden, und eine oder mehrere Singlethread-Wohnungen. Schnittstellenzeiger müssen zwischen Wohnungen gemarstet werden, können aber ohne Marshalling innerhalb einer Wohnung verwendet werden. Aufrufe von Objekten in einem Singlethread-Apartment werden von COM synchronisiert. Aufrufe an Objekte in der Multithread-Wohnung werden nicht von COM synchronisiert.

Alle Informationen zu Singlethread-Wohnungen gelten für die als Apartmentmodell gekennzeichneten Threads, und alle Informationen zu Multithread-Wohnungen gelten für alle Threads, die als Freithread gekennzeichnet sind. Apartmentthreadingregeln gelten für die Kommunikation zwischen Wohnungen, die erfordern, dass Schnittstellenzeiger zwischen Wohnungen mit Aufrufen von CoMarshalInterThreadInterfaceInStream und CoGetInterfaceAndReleaseStreamgemarstet werden, wie in Single-Threaded Apartmentsbeschrieben.

Anmerkung

Einige besondere Aspekte gelten beim Umgang mit In-Process-Servern. Weitere Informationen finden Sie unter In-Process Serverthreading-Probleme.

 

Zugriff auf Schnittstellen über Wohnungen

Auswählen des Threadingmodells

Multithreaded Apartments

In-Process Serverthreadingprobleme

Prozesse, Threads und Apartments

Single-Threaded Apartments