非特定单元
COM+ 引入了中性单元,以简化多线程环境中的编程。 对于没有用户界面的组件,中性单元是 COM+ 的首选模型。
过去,为了防止瓶颈,需要服务器可伸缩性的 COM+ 开发人员必须实现自由线程组件;但是,自由线程模型实现起来很复杂,因为必须处理互锁访问。 在中性单元中,对象遵循多线程单元的准则,但可以在任何类型的线程上执行。 当线程在中性单元中运行时,将接收对象的上下文,而不会导致线程切换。
每个进程只能有一个中性单元。 若要选择中性单元,请使用以下注册表设置:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID
{CLSID}
InprocServer32
ThreadingModel = Neutral
具有用户界面的组件可继续使用单线程单元作为首选模型。 若要选择单线程单元,请使用以下注册表设置:
ThreadingModel = Apartment