我觉得现有的解释太过分了。以下是我用简单英语所作的解释:
sta:如果一个线程创建一个设置为STA的COM对象(当调用CoCreateXXX时,您可以传递一个将COM对象设置为STA模式的标志),那么只有这个线程才能访问这个COM对象(STA的意思是-单线程单元),其他试图调用这个COM对象的线程就会被悄悄地转换成将消息传递给创建(拥有)COM对象的线程。这非常类似于这样一个事实:只有创建UI控件的线程才能直接访问它。这种机制是为了防止复杂的锁/解锁操作。
MTA:如果一个线程创建一个被设置为MTA的COM对象,那么几乎每个线程都可以直接调用它上的方法。
这几乎就是它的要旨。虽然从技术上讲,我没有提到一些细节,比如在‘STA’段落中,创建者线程本身必须是STA。但要理解STA/MTA/NA,这是你所要知道的。