Single-Threaded und Multithreadkommunikation
Ein Client oder Server, der sowohl Singlethread- als auch Multithread-Wohnungen unterstützt, verfügt über ein Multithread-Apartment, das alle Als Freethread-Threads initialisierten Threads und ein oder mehrere Singlethread-Apartments enthält. Schnittstellenzeiger müssen zwischen Wohnungen gemarshallt werden, können aber ohne Marshalling innerhalb einer Wohnung verwendet werden. Aufrufe von Objekten in einem Singlethread-Apartment werden von COM synchronisiert. Aufrufe von Objekten im Multithread-Apartment werden nicht von COM synchronisiert.
Alle Informationen zu Singlethread-Wohnungen gelten für die Threads, die als Wohnungsmodell gekennzeichnet sind, und alle Informationen zu Multithread-Wohnungen gelten für alle als Freithread gekennzeichneten Threads. Regeln für Apartmentthreading gelten für die Kommunikation zwischen Wohnungen, die erfordern, dass Schnittstellenzeiger zwischen Wohnungen mit Aufrufen von CoMarshalInterThreadInterfaceInStream und CoGetInterfaceAndReleaseStream gemarshallt werden, wie unter Single-Threaded Apartments beschrieben.
Hinweis
Einige besondere Überlegungen gelten beim Umgang mit In-Process-Servern. Weitere Informationen finden Sie unter Probleme beim In-Process-Serverthreading.
Zugehörige Themen