COINIT_APARTMENTTHREADED 是指 STA(单线程公寓)吗?

问题描述 投票:0回答:1

在WinAPI中,CoInitializeEx需要COINIT参数,例如COINIT_APARTMENTTHREADEDCOINIT_MULTITHREADED。 “APARTMENTTHREADED”一词似乎令人困惑,因为 STA(单线程公寓)或 MTA(多线程公寓)都是公寓。如果COINIT_APARTMENTTHREADED意味着STA,有人可以提供澄清它的官方文件吗? AFAIK,“COINIT_APARTMENTTHREADED”简单地描述为“初始化公寓线程对象并发的线程”。

看来“COINIT_STA 和 COINIT_MTA”或“COINIT_SINGLETHREADED”和“COINIT_MULTITHREADED”更准确地表达了其含义。

c++ winapi terminology apartments
1个回答
0
投票

是,

COINIT_APARTMENTTHREADED
用于 STA,
COINIT_MULTITHREADED
用于 MTA。
明显的差异(后者中缺少“公寓”一词)是由于多年来术语略有变化所致。

您要求提供一些官方文件来确认这一点,所以这里是:

  1. 单线程公寓的文档明确提到

    COINIT_APARTMENTTHREADED
    应该与例如
    CoInitializeEx

  2. 多线程公寓的文档明确提到

    COINIT_MULTITHREADED
    应该与例如
    CoInitializeEx

© www.soinside.com 2019 - 2024. All rights reserved.