Ant*_*y D 39 .net c# multithreading apartments
可能重复:
你能解释一下STA和MTA吗?
所有ThreadPool线程都在多线程单元中.
- 根据MSDN
那是什么意思?我真的很关心多线程和单线程公寓模型之间的区别.或者公寓模型是什么意思?我已经阅读了它的MSDN,这对我来说并没有多大意义.我想我可能有一个想法,但我认为这里有人可以用简单的英语解释它.
谢谢,安东尼D.
更新1
发现这 可以解释STA和MTA吗?
任何人都可以更具描述性吗?
更新2
我也在寻找一个关于如何应用于线程池的答案,以及因此而需要注意的事项.
小智 12
实际上,STA和MTA对.NET代码有影响.请参阅Chris Brumme的博客文章,了解更多细节,然后您可能需要:
http://blogs.msdn.com/cbrumme/archive/2004/02/02/66219.aspx
了解STA如何在.NET中输出消息非常重要.它确实有后果.
如果您的COM对象需要相信它在单线程环境中,请使用STA.您可以保证创建和所有调用都将由同一个线程完成.您可以安全地使用Thread本地存储,而不需要使用关键部分.
如果您的COM对象可以被许多线程同时访问,请使用MTA - 没有防护措施到位.
正如其他人所指出的,它通常对.NET应用程序几乎没有影响.
但是,请注意,用于单元测试的Microsoft测试主机实际上是在STA中实现的,这意味着在单元测试中可以执行的操作存在限制.例如,你不能做WaitAll一个WaitHandle在单元测试中,你正在使用微软的测试主机.
| 归档时间: |
|
| 查看次数: |
45575 次 |
| 最近记录: |