在C#中,类SetApartmentState
中有一个方法Thread
。
我如何在C ++中做同样的事情?
答案 0 :(得分:7)
对于非托管进程,您可以通过将适当的参数传递给CoInitializeEx()
来控制用于线程的单元模型。拉里奥斯特曼写了一篇伟大的小指南:
...
当一个线程调用CoInitializeEx
(或CoInitialize
),线程告诉COM 它是两种公寓类型中的哪一种 准备主持。表明这一点 线程应该存在于MTA中,你 将COINIT_MULTITHREADED
标志传递给CoInitializeEx
。表明了 线程应该托管STA,要么调用CoInitialize
或通过。{COINIT_APARTMENTTHREADED
标记为CoInitializeEx
。
...
- http://blogs.msdn.com/larryosterman/archive/2004/04/28/122240.aspx
答案 1 :(得分:1)
c ++没有内置的线程支持。您正在寻找的内容取决于您在应用程序中实现线程的方式。 Win32的?并行线程?提高::线程?无论您使用哪种API,都将决定您问题的答案。
编辑:看起来这可能有一个例子:http://msdn.microsoft.com/en-us/library/system.threading.apartmentstate.aspx
看起来它适用于托管c ++。