/CLRTHREADATTRIBUTE (CLR スレッド属性の設定)

CLR プログラムのエントリポイントのスレッド属性を明示的に指定します。

構文

/CLRTHREADATTRIBUTE:{STA|MTA|NONE}

パラメーター

MTA
MTAThreadAttribute 属性をプログラムのエントリポイントに適用します。

NONE
/Clrthreadattributeを指定しない場合と同じです。 共通言語ランタイム (CLR) が既定のスレッド属性を設定できるようにします。

STA
STAThreadAttribute 属性をプログラムのエントリポイントに適用します。

解説

スレッド属性の設定は、.exe をビルドする場合にのみ有効です。これは、メインスレッドのエントリポイントに影響するためです。

既定のエントリポイント (main または wmain など) を使用する場合は、/CLRTHREADATTRIBUTE を使用するか、スレッド属性 (STAThreadAttribute または MTAThreadAttribute) を既定のエントリ関数に配置することによって、スレッドモデルを指定します。

既定以外のエントリポイントを使用する場合は、/CLRTHREADATTRIBUTE を使用するか、スレッド処理属性を既定以外のエントリ関数に配置して、既定以外のエントリポイントを /entryで指定することによって、スレッドモデルを指定します。

ソースコードに指定されているスレッドモデルが、/CLRTHREADATTRIBUTE で指定されたスレッドモデルに一致しない場合、リンカーは/CLRTHREADATTRIBUTE を無視し、ソースコードで指定されたスレッドモデルを適用します。

シングルスレッドを使用する必要があるのは、CLR プログラムがシングルスレッドを使用する COM オブジェクトをホストしている場合などです。 CLR プログラムがマルチスレッドを使用する場合、シングルスレッドを使用する COM オブジェクトをホストすることはできません。

Visual Studio 開発環境でこのリンカー オプションを設定するには

  1. プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、Visual Studio での C++ コンパイラとビルド プロパティの設定に関するページを参照してください。

  2. [構成プロパティ] リンカー[詳細設定] プロパティページを選択します。

  3. CLR スレッド属性プロパティを変更します。

このリンカーをコードから設定するには

  1. 以下を参照してください。CLRThreadAttribute

関連項目

MSVC リンカーのリファレンス
MSVC リンカー オプション