クリックして評価とフィードバックをお寄せください
MSDN
MSDN ライブラリ
.NET 開発
.NET Framework 3.5
.NET Framework 3.5
System 名前空間
STAThreadAttribute クラス

  低帯域幅での表示をオンにする
このページは次のバージョンについて記述しています。
Microsoft Visual Studio 2008/.NET Framework 3.5

その他のバージョンについては、以下の情報を参照してください。
.NET Framework クラス ライブラリ
STAThreadAttribute クラス

更新 : 2007 年 11 月

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

名前空間 :  System
アセンブリ :  mscorlib (mscorlib.dll 内)
Visual Basic (宣言)
<AttributeUsageAttribute(AttributeTargets.Method)> _
<ComVisibleAttribute(True)> _
Public NotInheritable Class STAThreadAttribute _
    Inherits Attribute
Visual Basic (使用法)
Dim instance As STAThreadAttribute
C#
[AttributeUsageAttribute(AttributeTargets.Method)]
[ComVisibleAttribute(true)]
public sealed class STAThreadAttribute : Attribute
Visual C++
[AttributeUsageAttribute(AttributeTargets::Method)]
[ComVisibleAttribute(true)]
public ref class STAThreadAttribute sealed : public Attribute
J#
/** @attribute AttributeUsageAttribute(AttributeTargets.Method) */
/** @attribute ComVisibleAttribute(true) */
public final class STAThreadAttribute extends Attribute
JScript
public final class STAThreadAttribute extends Attribute

この属性をエントリ ポイント メソッド (C# および Visual Basic では Main() メソッド) に適用します。他のメソッドには影響ありません。コードで開始するスレッドのアパートメント状態を設定するには、スレッドを設定する前に Thread..::.SetApartmentState メソッドを使用します。

71tx0eb5.alert_note(ja-jp,VS.90).gifメモ :

.NET Framework Version 1.0 および 1.1 では、スレッドを開始する前に Thread..::.ApartmentState プロパティを設定します。

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

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

.NET Framework Version 1.0 および 1.1 では、最初のコード行で Thread..::.ApartmentState プロパティを設定する代わりに、この属性を Main() に使用することにより、スタートアップ コードの実行前にスレッド処理モデルを確実に設定します。

71tx0eb5.alert_caution(ja-jp,VS.90).gif重要 :

.NET Framework Version 2.0 では、新しいスレッドが開始される前にスレッドのアパートメント状態が設定されていない場合、新しいスレッドは ApartmentState..::.MTA として初期化されます。メイン アプリケーション スレッドは、既定で、ApartmentState..::.MTA に初期化されます。最初のコード行で Thread..::.ApartmentState プロパティを設定しても、メイン アプリケーション スレッドを ApartmentState..::.STA に設定できません。代わりに STAThreadAttribute を使用します。

.NET Framework Version 2.0 からは、/CLRTHREADATTRIBUTE (CLR スレッド属性の設定) リンカ オプションを使用して C++ アプリケーション用の COM スレッド処理モデルを指定することもできます。

ページが STA スレッド プールで強制的に提供されるように、ASP.NET アプリケーションでは、@ Page ディレクティブの ASPCompat 属性を true に設定する必要があります。

System..::.Object
  System..::.Attribute
    System..::.STAThreadAttribute
この型のすべてのパブリック static (Visual Basic では Shared) メンバは、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework および .NET Compact Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

.NET Framework

サポート対象 : 3.5、3.0、2.0、1.1、1.0
コミュニティ コンテンツ   コミュニティ コンテンツとは
新しいコンテンツの追加 RSS  注釈
Processing
© 2009 Microsoft Corporation. All rights reserved. 使用条件  |  商標  |  プライバシー
Page view tracker