C#でスレッドにパラメータを渡す方法は何ですか?
C#では、ThreadクラスのParameterizedThreadStartデリゲートを使用してスレッドにパラメーターを渡すことができます。以下はサンプルコードです:
using System;
using System.Threading;
class Program
{
static void Main()
{
// 创建一个线程,并传递参数给线程
Thread thread = new Thread(new ParameterizedThreadStart(WorkThread));
thread.Start("Hello, World!");
Console.WriteLine("主线程");
Console.ReadLine();
}
static void WorkThread(object data)
{
string message = (string)data;
Console.WriteLine("工作线程收到参数:{0}", message);
}
}
上記のコードでは、新しいスレッドを作成し、ParameterizedThreadStartデリゲートを使用してスレッドにパラメータを渡しました。作業スレッドでは、受け取ったパラメータを必要な型に変換し、それに応じた操作を行います。
C# 4.0以降では、スレッドにパラメーターを渡すためにラムダ式を使用することもできます。例えば、
Thread thread = new Thread(() =>
{
string message = "Hello, World!";
Console.WriteLine("工作线程收到参数:{0}", message);
});
thread.Start();
Lambda式を使うことで、スレッドにパラメータを簡潔に渡すことができます。