【发布时间】:2010-09-17 00:43:19
【问题描述】:
在 C# 中,Thread 类中有一个方法 SetApartmentState。
我如何在 C++ 中做同样的事情?
【问题讨论】:
标签: c++ windows multithreading com
在 C# 中,Thread 类中有一个方法 SetApartmentState。
我如何在 C++ 中做同样的事情?
【问题讨论】:
标签: c++ windows multithreading com
对于非托管进程,您可以通过将适当的参数传递给CoInitializeEx() 来控制用于线程的单元模型。拉里·奥斯特曼 (Larry Osterman) 写了一个伟大的小指南:
...
当一个线程调用CoInitializeEx(或CoInitialize),线程告诉 COM 这是两种公寓类型中的哪一种 准备主办。表明 线程应该存在于 MTA 中,你 将COINIT_MULTITHREADED标志传递给CoInitializeEx。表明该 线程应该托管一个 STA,或者调用CoInitialize或通过COINIT_APARTMENTTHREADED标志到CoInitializeEx.
...
-- http://blogs.msdn.com/larryosterman/archive/2004/04/28/122240.aspx
【讨论】:
c++ 没有内置的线程支持。您要查找的内容取决于您在应用程序中实现线程的方式。赢32?线程?提升::线程?无论您使用哪种 API,都将决定您的问题的答案。
编辑:看起来这可能有一个例子给你:http://msdn.microsoft.com/en-us/library/system.threading.apartmentstate.aspx
看起来它适用于托管 c++。
【讨论】: