调用时CoInitializeEx
,您可以为以下值指定以下值dwCoInit
:
typedef enum tagCOINIT { COINIT_MULTITHREADED = 0x0, COINIT_APARTMENTTHREADED = 0x2, COINIT_DISABLE_OLE1DDE = 0x4, COINIT_SPEED_OVER_MEMORY = 0x8, } COINIT;
具有暗示性的"速度超过记忆"价值的作用是什么?这些天在COM中被忽略了吗?
不知道它是否仍在使用,但它的目的是改变COM算法使用的平衡.
如果您不惜一切代价拥有大量内存和想要的速度,那么您将设置该标志.
在低内存环境中,关闭该标志将有利于减少内存使用.
事实证明,奇妙的雷蒙德·陈("旧新事物"成名)现在已经对这个主题进行了权衡,尽管那个旗帜本打算做什么,但它显然什么也没做.
请参阅CoInitializeEx的COINIT_SPEED_OVER_MEMORY标志有什么作用?更多细节:
什么时候应该启用此模式?没关系,因为据我所知,COM中的任何地方都没有代码根据进程是否已置于此模式而改变其行为!看起来在引入DCOM时添加了标志,但它从未被连接到任何东西.(或者任何连接它的代码从未发货过.)
另外, 来自最初的COM +架构师之一Steve Swartz的http://archives.neohapsis.com/archives/microsoft/various/dcom/2001-q1/0160.html:
COM忽略COINIT_SPEED_OVER_MEMORY.