次の方法で共有


ThreadStart デリゲート

Thread で実行するメソッドを表します。

<Serializable>
Public Delegate Sub ThreadStart()
[C#]
[Serializable]
public delegate void ThreadStart();
[C++]
[Serializable]
public __gc __delegate void ThreadStart();

[JScript] JScript では、.NET Framework のデリゲートを利用することができます。ただし、独自に定義することはできません。

パラメータ [Visual Basic, C#, C++]

コールバック メソッドの宣言のパラメータは、ThreadStart デリゲートの宣言と同じでなければなりません。

解説

スレッドが作成されると、 Thread クラスの新しいインスタンスは、 ThreadStart デリゲートを唯一のパラメータとするコンストラクタを使用して作成されます。ただし、スレッドは Start メソッドが呼び出されるまで実行を開始しません。 Start が呼び出されると、 ThreadStart デリゲートで参照されるメソッドの最初の行から実行が開始されます。

[Visual Basic] メモ   Visual Basic の場合は、スレッドを作成するときに ThreadStart コンストラクタを省略できます。メソッドを Thread コンストラクタに渡すときは、 Dim t As New Thread(AddressOf ThreadProc) のように、 AddressOf 演算子を使用します。Visual Basic では ThreadStart コンストラクタが自動的に呼び出されます。

使用例

[Visual Basic, C#, C++] ThreadStart デリゲートを作成および使用するための構文の例を次に示します。

 
Imports System
Imports System.Threading

Public Class Test
    Shared Sub Main()
        Dim newThread As New Thread(AddressOf Work.DoWork)
        newThread.Start()
    End Sub
End Class

Public Class Work 
    Shared Sub DoWork()
    End Sub
End Class

[C#] 
using System;
using System.Threading;

class Test
{
    static void Main() 
    {
        ThreadStart threadDelegate = new ThreadStart(Work.DoWork);
        Thread newThread = new Thread(threadDelegate);
        newThread.Start();
    }
}

class Work 
{
    public static void DoWork() {}
}

[C++] 
#using <mscorlib.dll>
using namespace System;
using namespace System::Threading;

__gc class Work 
{
public:
    static void DoWork() {}
};

void main() 
{
    ThreadStart* threadDelegate = new ThreadStart(0, &Work::DoWork);
    Thread* newThread = new Thread(threadDelegate);
    newThread->Start();
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.Threading

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

アセンブリ: Mscorlib (Mscorlib.dll 内)

参照

System.Threading 名前空間 | Thread | AppDomain | スレッドの作成