この属性をエントリ ポイント メソッド (C# および Visual Basic では Main() メソッド) に適用します。他のメソッドには影響ありません。コードで開始するスレッドのアパートメント状態を設定するには、スレッドを設定する前に Thread..::.SetApartmentState メソッドを使用します。
COM スレッド モデルは COM 相互運用機能を使用するアプリケーションにだけ関係します。COM 相互運用機能を使用しないアプリケーションでこの属性を使用しても無効です。
COM スレッド モデルは、シングルスレッド アパートメントにもマルチスレッド アパートメントにも設定できます。アプリケーション スレッドは、スレッドが実際に COM コンポーネントに対する呼び出しを行った場合にだけ、COM 相互運用機能に対して初期化されます。COM 相互運用機能を使用しない場合、スレッドは初期化されません。
.NET Framework Version 1.0 および 1.1 では、最初のコード行で Thread..::.ApartmentState プロパティを設定する代わりに、この属性を Main() に使用することにより、スタートアップ コードの実行前にスレッド処理モデルを確実に設定します。
.NET Framework Version 2.0 からは、/CLRTHREADATTRIBUTE (CLR スレッド属性の設定) リンカ オプションを使用して C++ アプリケーション用の COM スレッド処理モデルを指定することもできます。
ページが STA スレッド プールで強制的に提供されるように、ASP.NET アプリケーションでは、@ Page ディレクティブの ASPCompat 属性を true に設定する必要があります。