Поделиться через


Single-Threaded и многопоточное взаимодействие

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

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

Заметка

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

 

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

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

многопоточных квартир

In-Process проблемы с потоком сервера

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

Single-Threaded квартиры