La propiedad ThreadingModel especifica el modelo de subprocesos utilizado por las clases COM en proceso, que pueden ser: ...

La propiedad ThreadingModel especifica el modelo de subprocesos utilizado por las clases COM en proceso, que pueden ser:
Apartment: los componentes sólo pueden ser especificados por un subproceso. Los datos comunes que contienen estos tipos de servidores de objetos deben estar protegidos ante las colisiones entre subprocesos, ya que el servidor de objetos es compatible con varios componentes. Cada componente puede ser especificado simultáneamente por varios subprocesos.
Free: los componentes no establecen restricciones en cuanto al tipo ni la cantidad de subprocesos que pueden especificar al objeto. El objeto no puede contener datos específicos de subprocesos y debe proteger sus datos ante un acceso simultáneo por parte de varios subprocesos. Sin embargo, los componentes de subprocesamiento libre no permiten el acceso directo de subprocesos controlados, y las llamadas dirigidas a ellos se procesan desde el cliente.
Both: componentes que se pueden utilizar en modos de subprocesamiento controlado o libre. Estos componentes pueden ser especificados por varios subprocesos, proteger sus datos ante colisiones de subprocesos y no contener datos específicos de subproceso.
Si esta propiedad es NULL, no se utiliza ningún modelo de subprocesos. El componente se crea en el subproceso principal del cliente y se calculan referencias a este proceso para las llamadas de otros subprocesos. Consulte el Kit de desarrollo de software de plataformas para obtener información acerca de los distintos modelos de subprocesos.