STAThread 和 MTAThread

STAThread:single threaded apartment 直译过来是:单线程单元套间

MTAThread:multiple threaded apartment 直译过来是:多线程单元套间

差别其实就是这个:

其他线程对STA中的COM对象的访问需要列集(marshal),通过列集,自动实现了多线程访问下的同步

所有线程对MTA中的COM对象的访问不需要列集,直接访问,需要COM组件自身实现多线程下的同步

COM对象和客户端的组件模型设定, 决定最终的组件模型时怎样, 以下这篇文章挺详细:

http://www.cnblogs.com/ioexception/p/dotnet_STAThread_MTAThread.html

 

原文地址:https://www.cnblogs.com/thyong/p/3245263.html