Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Регистрирует 32-разрядный внутрипроцессный сервер и задает модель потоков квартиры, в котором может выполняться сервер.
Запись реестра
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID
{CLSID}
InprocServer32
(Default) = path
ThreadingModel = value
Замечания
ThreadingModel — это REG_SZ значение, указывающее модель потоков. Возможные значения показаны в следующей таблице.
| Ценность | Описание |
|---|---|
| Квартира | Однопоточная квартира |
| Оба | Однопоточная или многопоточная квартира |
| Свободный | Многопоточность квартиры |
| Нейтральный | Нейтральная квартира |
Для каждого объекта, предоставленного сервером внутрипроцессного процесса, необходимо использовать одно и то же значение.
Если ThreadingModel отсутствует или не задано значение, сервер загружается в первую квартиру, которая была инициализирована в процессе. Эта квартира иногда называется основной однопоточной квартирой (STA). Если первый STA в процессе инициализируется COM, а не явным вызовом CoInitialize или CoInitializeEx, он называется STA узла. Например, COM создает узлу STA, если для загрузки внутрипроцессного сервера требуется STA, но в настоящее время в процессе нет STA.
По возможности сервер в процессе загружается в той же квартире, что и клиент, который загружает его. Если модель потоков клиентской квартиры несовместима с указанной моделью, сервер загружается, как указано в следующей таблице.
| Модель потоков сервера | Сервер квартиры запущен в |
|---|---|
| <\nуказанного> | Основной STA |
| Оба | Та же квартира, что и клиент |
| Свободный | Многопоточность квартиры |
| Нейтральный | Нейтральная квартира |
Если потоковая модель сервера — Apartment, то квартира, в которой загружается сервер, зависит от квартиры, в которой работает клиент, как указано в следующей таблице.
| Клиент квартиры работает в | Сервер квартиры запущен в |
|---|---|
| Многопоточных | Host STA |
| Нейтральный (в потоке STA) | Та же квартира, что и клиент |
| Нейтральный (в потоке MTA) | Host STA |
COM также может создавать многопоточные квартиры узла (MTA). Если клиент в однопоточной квартире запрашивает внутрипроцессный сервер, потоковая модель которого свободна при отсутствии MTA в процессе, COM создает MTA узла и загружает сервер в него.
Для 32-разрядного внутрипроцессного сервера InprocHandler32, InprocServer, InprocServer32и Вставляемые ключи должны быть зарегистрированы. Запись InprocServer необходима только для обратной совместимости. Если он отсутствует, класс по-прежнему работает, но его нельзя загрузить в 16-разрядных приложениях.
Если контейнер ищет реестр для внутреннего сервера, 16-разрядная версия имеет приоритет с 16-разрядным контейнером, а 32-разрядная версия имеет приоритет с 32-разрядным контейнером.
Связанные разделы