C# で ParameterizedThreadStart を使用する方法は?
C#ではParameterizedThreadStartデリゲートは、オブジェクトを引数に取ることができるスレッドメソッドを作成するために使用されます。以下に、ParameterizedThreadStartデリゲートを使用する基本的な例を示します:
using System;
using System.Threading;
class Program
{
static void Main(string[] args)
{
Thread thread = new Thread(new ParameterizedThreadStart(WorkerMethod));
thread.Start("Hello from worker thread!");
// 等待工作线程执行完毕
thread.Join();
Console.WriteLine("Main thread exiting.");
Console.ReadLine();
}
static void WorkerMethod(object message)
{
string msg = (string)message;
Console.WriteLine("Worker thread received message: " + msg);
}
}
上のサンプルでは、新しいスレッドを作成し、WorkerMethodメソッドをスレッドのエントリポイントとして使用しています。WorkerMethodメソッドはオブジェクト引数を受けれるので、ParameterizedThreadStartデリゲートを使用してスレッドを作成しています。
メインメソッドでは、新しいスレッドを作成して起動します。スレッド.スタート(「ワーカースレッドからこんにちは!」)を呼び出すことで、WorkerMethodメソッドに文字列パラメーターを渡します。
ワーカー「WorkerMethod」メソッドは、ワーカースレッドで実行され、渡したパラメータを受け取ります。この例では、渡したパラメータを文字列に変換して、コンソールに表示します。
最後に、スレッドの完了をスレッド.Join()メソッドで待ち受けて、メインスレッドでメッセージを出力します。
このサンプルコードが、パラメータ化されたスレッド開始デリゲートを使ってC#でパラメーター付きスレッドメソッドを作成する方法を理解するのに役立てば幸いです。