Однопоточное и многопоточное взаимодействие
Клиент или сервер, поддерживающий как однопоточные, так и многопоточные квартиры, будут иметь одну многопоточную квартиру, содержащую все потоки, инициализированные как свободные потоки, и одну или несколько однопоточных квартир. Указатели интерфейса должны быть маршалированы между квартирами, но могут использоваться без маршалинга внутри квартиры. Вызовы объектов в однопоточной квартире будут синхронизированы COM. Вызовы объектов в многопоточной квартире не будут синхронизированы COM.
Все сведения о однопоточных квартирах применяются к потокам, помеченным как модель квартиры, и все сведения о многопоточных квартирах применяются ко всем потокам, помеченным как свободные потоки. Правила потоков квартир применяются к межквартирному обмену данными, требуя, чтобы указатели интерфейса маршалировались между квартирами с вызовами CoMarshalInterfaceInterfaceInStream и CoGetInterfaceAndReleaseStream, как описано в однопоточных квартирах.
Примечание.
Некоторые особые рекомендации применяются при работе с серверами внутрипроцессного процесса. Дополнительные сведения см. в разделе "Проблемы потоков в процессе сервера".
См. также