STAThreadAttribute クラス
アプリケーションの COM スレッド モデルがシングルスレッド アパートメント (STA: Single-Threaded Apartment) であることを示します。
この型のすべてのメンバの一覧については、STAThreadAttribute メンバ を参照してください。
System.Object
System.Attribute
System.STAThreadAttribute
<AttributeUsage(AttributeTargets.Method)>
NotInheritable Public Class STAThreadAttribute Inherits Attribute
[C#]
[AttributeUsage(AttributeTargets.Method)]
public sealed class STAThreadAttribute : Attribute
[C++]
[AttributeUsage(AttributeTargets::Method)]
public __gc __sealed class STAThreadAttribute : public Attribute
[JScript]
public
AttributeUsage(AttributeTargets.Method)
class STAThreadAttribute extends Attribute
スレッドセーフ
この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。
解説
COM スレッド モデルは COM 相互運用機能を使用するアプリケーションにだけ関係します。COM 相互運用機能を使用しないアプリケーションでこの属性を使用しても無効です。
COM スレッド モデルは、シングルスレッド アパートメントにもマルチスレッド アパートメントにも設定できます。アプリケーション スレッドは、スレッドが実際に COM コンポーネントに対する呼び出しを行った場合にだけ、COM 相互運用機能に対して初期化されます。COM 相互運用機能を使用しない場合、スレッドは初期化されません。
この属性は、 System.Threading.Thread の System.Threading.ApartmentState プロパティの設定と同じ効果があります。スレッド モデルをスタートアップ コードの実行前に設定するには、 ApartmentState プロパティを設定するのではなくこの属性を適用します。
この属性はアプリケーションのメイン メソッドに適用します。
メモ ページが STA スレッド プールで強制的に提供されるように、ASP.Net アプリケーションでは、 @ Page ディレクティブの ASPCompat 属性を true に設定する必要があります。
必要条件
名前空間: System
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
アセンブリ: Mscorlib (Mscorlib.dll 内)