/CLRTHREADATTRIBUTE (CLR スレッド属性の設定)
更新 : 2007 年 11 月
CLR プログラムのエントリ ポイントにスレッド処理属性を明示的に指定します。
/CLRTHREADATTRIBUTE:{STA|MTA|NONE}
パラメータ
MTA
MTAThreadAttribute 属性をプログラムのエントリ ポイントに適用します。NONE
/CLRTHREADATTRIBUTE を指定しないことと同じです。共通言語ランタイム (CLR: Common Language Runtime) が既定のスレッド処理属性を設定するようにします。STA
STAThreadAttribute 属性をプログラムのエントリ ポイントに適用します。
解説
スレッド属性はメイン スレッドのエントリ ポイントに影響を与えるものであるため、この属性の設定が有効なのは .exe をビルドするときだけです。
既定のエントリ ポイント (main または wmain など) を使用する場合は、/CLRTHREADATTRIBUTE を使用するか、または既定のエントリ関数にスレッド処理属性 (STAThreadAttribute または MTAThreadAttribute) を指定するかして、スレッド処理モデルを指定します。
既定以外のエントリ ポイントを使用する場合は、/CLRTHREADATTRIBUTE を使用するか、または既定以外のエントリ関数にスレッド処理属性を指定するかして、スレッド処理モデルを指定します。次に、/ENTRY を使用して、既定以外のエントリ ポイントを指定します。
ソース コードで指定されたスレッド処理モデルが /CLRTHREADATTRIBUTE で指定されたスレッド処理モデルと一致しない場合、リンカは /CLRTHREADATTRIBUTE を無視し、ソース コードで指定されたスレッド処理モデルを適用します。
たとえば、シングルスレッドを使用する COM オブジェクトを CLR プログラムでホストする場合は、シングルスレッドを使用する必要があります。マルチスレッドを使用する CLR プログラムでは、シングルスレッドを使用する COM オブジェクトをホストできません。
Visual Studio 開発環境でこのリンカ オプションを設定するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。詳細については、「方法 : プロジェクト プロパティ ページを開く」を参照してください。
[構成プロパティ] ノードを展開します。
[リンカ] ノードを展開します。
[詳細] プロパティ ページをクリックします。
[CLR スレッド属性] プロパティを変更します。
このリンカをコードから設定するには
- CLRThreadAttribute を参照してください。