代码改变世界

COM线程单元

2017-06-04 17:03  Dirichlet  阅读(308)  评论(0编辑  收藏  举报

节选自C#高级编程

不管是单线程单元还是多线程单元,一个线程只能属于一个单元。

1) 单线程单元(apartment, 寓所,套间)

单线程单元与它拥有的线程是一对一的关系。COM对象在编写时不是线程安全的,也就是说编写COM对象时可以不考虑线程安全,COM库通过消息处理机制帮助实现线程同步。

 

2) 多线程单元(apartment, 寓所,套间)

多线程单元与它拥有的线程是一对多的关系。COM对象在编写时是线程安全的,也就是说编写COM对象时需要自己实现线程安全,或者COM的使用者实现同步。