问题

你能用自己的话解释STA和MTA吗?

另外,什么是公寓线程,它们只涉及COM?如果是这样,为什么?

  最佳答案

COM线程模型称为“公寓”模型,其中初始化COM对象的执行上下文与单个线程(单线程公寓)或许多线程(多线程公寓)关联.在这个模型中,COM对象一旦初始化在公寓中,在运行时期是该公寓的一部分.

STA模型用于非线程安全的COM对象.这意味着它们不处理自己的同步.通常使用这是一个UI组件.因此,如果另一个线程需要与对象进行交互(例如以表单推送按钮),则消息被传送到STA线程. Windows表单消息抽取系统是这方面的一个例子.

如果 COM 对象可以处理自己的同步,那么可以使用 MTA 模型,允许多个线程与对象进行交互,而不需要调用组合。

  相同标签的其他问题

.netmultithreadingcomapartments