无法设置指定的COM公寓状态ApartmentState.STA

时间:2014-10-23 09:44:14

标签: c# multithreading com

我从A类调用COM方法

所以使.Net的线程模型与单线程公寓相同

我在A类的构造函数

中调用以下代码行
Thread.CurrentThread.SetApartmentState(ApartmentState.STA);

但我得到了

无效的操作异常“无法设置指定的COM单元状态”

如何将当前线程设置为Single Threaded Apartment

1 个答案:

答案 0 :(得分:4)

在新线程上调用COM方法并改为设置该线程的状态:

Thread newThread = 
        new Thread(new ThreadStart(MethodToCallCOMMethod));
newThread.SetApartmentState(ApartmentState.STA);
newThread.Start();