根据COM对象的执行环境, 分为套间线程和自由线程

1 套间线程(apartment)

  • 位于一个STA中(Single-Threaded Apartment)
  • 一个套间对应一个线程

    2 自由线程(free)

  • 位于MTA中(Multi-Threaded Apartment)

  • 一个进程有一个MTA,它可以包含任意数量的自由线程

3 编组机制(marshaling)

调用者(调用com组件的线程2) 与 被调用者(com组件被创建的线程1) 如果是不同的线程,则调用过程要有两次线程切换