你能解释一下STA和MTA? [英] Could you explain STA and MTA?

查看:289
本文介绍了你能解释一下STA和MTA?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您可以用自己的语言解释一下STA和MTA?

Can you explain STA and MTA in your own words?

此外,什么是公寓线程和他们做只涉及到COM?如果是这样,为什么?

Also, what are apartment threads and do they pertain only to COM? If so, why?

推荐答案

COM线程模型被称为公寓模式,即初始化COM对象的执行上下文与任何单个线程(单线程公寓)相关或多线程(多线程公寓)。在该模型中,一个COM对象,一旦在公寓初始化,是公寓为它的持续时间的一部分的运行时间。

The COM threading model is called an "apartment" model, where the execution context of initialized COM objects is associated with either a single thread (Single Thread Apartment) or many threads (Multi Thread Apartment). In this model, a COM object, once initialized in an apartment, is part of that apartment for the duration of it's runtime.

该STA模型用于非线程安全的COM对象。这意味着他们不处理自己的同步。一个常见的​​用途是UI组件。因此,如果另一线程需要与对象进行交互(例如,在一个形式按下一个按钮),则该消息被编组到STA线程。 Windows窗体消息泵系统是一个这样的例子。

The STA model is used for COM objects that are not thread safe. That means they do not handle their own synchronization. A common use of this is a UI component. So if another thread needs to interact with the object (such as pushing a button in a form) then the message is marshalled onto the STA thread. The windows forms message pumping system is an example of this.

如果COM对象可处理其自己的同步然后MTA模型可以使用,其中多个线程被允许与对象进行交互,而整理的呼叫。

If the COM object can handle its own synchronization then the MTA model can be used where multiple threads are allowed to interact with the object without marshalled calls.

这篇关于你能解释一下STA和MTA?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆