在 C#SetApartmentState
中,类中有一个方法Thread
。我如何在 C++ 中做同样的事情?
2 回答
对于非托管进程,您可以通过将适当的参数传递给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++。