【问题标题】:What is the equivalent of Thread.SetApartmentState in C++?C++ 中 Thread.SetApartmentState 的等价物是什么?
【发布时间】:2010-09-17 00:43:19
【问题描述】:

在 C# 中,Thread 类中有一个方法 SetApartmentState。 我如何在 C++ 中做同样的事情?

【问题讨论】:

    标签: c++ windows multithreading com


    【解决方案1】:

    对于非托管进程,您可以通过将适当的参数传递给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

    【讨论】:

      【解决方案2】:

      c++ 没有内置的线程支持。您要查找的内容取决于您在应用程序中实现线程的方式。赢32?线程?提升::线程?无论您使用哪种 API,都将决定您的问题的答案。

      编辑:看起来这可能有一个例子给你:http://msdn.microsoft.com/en-us/library/system.threading.apartmentstate.aspx

      看起来它适用于托管 c++。

      【讨论】:

        猜你喜欢
        • 2014-05-08
        • 2023-03-30
        • 2011-07-26
        • 2011-01-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多