class Program
{
static void Main(string[] args)
{
string message = "スレッド内で表示する文字列:";
// 別スレッドで処理するラムダ式
ThreadStart action = () =>
{
for (int i = 0; i < 5; i++)
{
// 1秒スリープ
Thread.Sleep(1000);
// Mainメソッドのローカル変数を参照
Console.WriteLine(message + i);
}
// Mainメソッドの引数を参照
Console.WriteLine("argsの型={0}, argsのレングス={1}",
args.ToString(), args.Length);
};
// スレッドクラスにThreadStartデリゲート(今回はラムダ式)を渡す
Thread thread = new Thread(action);
// スレッド開始
thread.Start();
// スレッド終了まで待つ
thread.Join();
// <結果>
//スレッド内で表示する文字列:0
//スレッド内で表示する文字列:1
//スレッド内で表示する文字列:2
//スレッド内で表示する文字列:3
//スレッド内で表示する文字列:4
//argsの型=System.String[], argsのレングス=0
}
}