我遇到了com组件的问题。
我有一个具有类abc的com组件。 现在我的控制台应用程序创建多个线程,每个线程创建一个新的abc对象 所以,多个线程正在创建并使用abc对象并行, 但是com正在按顺序处理呼叫。
ATSServer Svr = new ATSServerLookupClass().lookup("devcoreatd", 1088);
ATSRequest Req = new XMLUtilClass().buildRequest(readFile("Request\\" + FileName + ".xml"));
ATSResponse Res = Svr.submit(Req);
这是在一个并行执行多个线程的方法中编写的
ATSSERVER,ATSREQUEST,ATSRESPONSE,XMLUTIL都是来自COM的类
答案 0 :(得分:1)
如果从STA(单线程单元)中运行的应用程序引用和调用COM组件,则从COM实例化对象将自动导致排队,并且您的调用将在单个线程中起作用。控制台应用程序仅限STA。
您可以参考:http://msdn.microsoft.com/en-us/library/system.threading.thread.setapartmentstate.aspx