次の方法で共有


MTAThreadAttribute クラス

アプリケーションの COM スレッド モデルがマルチスレッド アパートメント (MTA: Multithreaded Apartment) であることを示します。

この型のすべてのメンバの一覧については、MTAThreadAttribute メンバ を参照してください。

System.Object
   System.Attribute
      System.MTAThreadAttribute

<AttributeUsage(AttributeTargets.Method)>
NotInheritable Public Class MTAThreadAttribute   Inherits Attribute
[C#]
[AttributeUsage(AttributeTargets.Method)]
public sealed class MTAThreadAttribute : Attribute
[C++]
[AttributeUsage(AttributeTargets::Method)]
public __gc __sealed class MTAThreadAttribute : public Attribute
[JScript]
public
   AttributeUsage(AttributeTargets.Method)
class MTAThreadAttribute extends Attribute

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

COM スレッド モデルは COM 相互運用機能を使用するアプリケーションにだけ関係します。COM 相互運用機能を使用しないアプリケーションでこの属性を使用しても無効です。

COM スレッド モデルは、シングルスレッド アパートメントにもマルチスレッド アパートメントにも設定できます。アプリケーション スレッドは、スレッドが実際に COM コンポーネントに対する呼び出しを行った場合にだけ、COM 相互運用機能に対して初期化されます。COM 相互運用機能を使用しない場合、スレッドは初期化されません。

この属性は、 System.Threading.ThreadSystem.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 内)

参照

MTAThreadAttribute メンバ | System 名前空間 | STAThreadAttribute