在 C# 中,类
SetApartmentState
中有一个方法 Thread
。
我如何在 C++ 中做同样的事情?
CoInitializeEx()
来控制用于线程的单元模型。拉里·奥斯特曼(Larry Osterman)为这些写了一个很棒的小指南:
...
当线程调用(或CoInitializeEx
),线程告诉 COM 这是两种公寓类型中的哪一种 准备主持。为了表明 该线程应该存在于 MTA 中,您 将CoInitialize
标志传递给COINIT_MULTITHREADED
。为了表明 线程应该托管一个 STA,或者调用CoInitializeEx
或通过CoInitialize
标记为COINIT_APARTMENTTHREADED
。CoInitializeEx
...
-- http://blogs.msdn.com/larryosterman/archive/2004/04/28/122240.aspx
在 C++11 发布之前,C++ 不具备内置线程支持。您要寻找的内容取决于您在应用程序中实现线程的方式。 Win32?线程?提升::线程?无论您使用哪个 API,都将决定您问题的答案。
编辑:看起来这可能有一个适合您的示例:http://msdn.microsoft.com/en-us/library/system.threading.apartmentstate.aspx
看起来它适用于托管c++。