STAThread 和 MTAThread

本文深入解析了单线程单元套间(STA)与多线程单元套间(MTA)的区别,以及它们对COM对象访问的影响。详细解释了STA中COM对象访问需要列集(marshal)以实现同步,而MTA中的COM对象可以直接访问,但需要组件自身实现多线程同步。文章最后推荐了一篇深入讨论该主题的中文博客。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值