Однопоточное и многопоточное взаимодействие

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

Все сведения о однопоточных квартирах применяются к потокам, помеченным как модель квартиры, и все сведения о многопоточных квартирах применяются ко всем потокам, помеченным как свободные потоки. Правила потоков квартир применяются к межквартирному обмену данными, требуя, чтобы указатели интерфейса маршалировались между квартирами с вызовами CoMarshalInterfaceInterfaceInStream и CoGetInterfaceAndReleaseStream, как описано в однопоточных квартирах.

Примечание.

Некоторые особые рекомендации применяются при работе с серверами внутрипроцессного процесса. Дополнительные сведения см. в разделе "Проблемы потоков в процессе сервера".

 

Доступ к интерфейсам между квартирами

Выбор модели потоков

Многопоточные квартиры

Проблемы с потоковой обработкой сервера

Процессы, потоки и квартиры

Квартиры с одним потоком