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 } }