ニュートラル アパートメント
COM+ には、マルチスレッド環境でのプログラミングを簡素化するニュートラル アパートメントが導入されています。 ニュートラル アパートメントは、ユーザー インターフェイスのないコンポーネントの COM+ に推奨されるモデルです。
以前は、ボトルネックを防ぐため、サーバーのスケーラビリティを必要とする COM+ 開発者は、フリー スレッド コンポーネントを実装する必要がありました。ただし、フリー スレッド モデルは、インターロック アクセスを処理する必要があるため、実装が複雑です。 ニュートラル アパートメントでは、オブジェクトはマルチスレッド アパートメントのガイドラインに従いますが、任意の種類のスレッドで実行することができます。 ニュートラル アパートメントでスレッドが実行されている場合、スレッドの切り替えを行わずにオブジェクトのコンテキストを受け取ります。
各プロセスに含めることができるニュートラル アパートメントは 1 つだけです。 ニュートラル アパートメントを選択するには、次のレジストリ設定を使用します。
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID
{CLSID}
InprocServer32
ThreadingModel = Neutral
ユーザー インターフェイスを持つコンポーネントでは、推奨されるモデルとしてシングル スレッド アパートメントを引き続き使用する必要があります。 シングル スレッド アパートメントを選択するには、次のレジストリ設定を使用します。
ThreadingModel = アパートメント