注意ParameterizedThreadStart委托的定义如下:

  可见其对传入函数的要求是:返回值void,参数个数1,参数类型object

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading;
    
    namespace 多线程2_带参数2
    {   
        class Program
        {
            static void Main(string[] args)
            {
                Guest guest = new Guest() 
                {
                 Name="Hello", Age=99
                };
                Thread t = new Thread(new ThreadStart(guest.DoSomething));//注意ThreadStart委托的定义形式
                t.Start();
    
                Thread.Sleep(1000);
                t.Abort();
                t.Join();//阻塞Main线程,直到t终止
                Console.ReadKey();
            }
        }
        //
        class Guest
        {
            public string Name { get; set; }
            public int Age { get; set; }
    
            public void DoSomething()
            {
                while (true)
                {
                    Console.WriteLine("{0}--{1}", Name, Age);
                }
            }
        }
    }

  这个还是使用ThreadStart委托,对方法进行了一个封装。

  两种方法,可随意选择,第一种貌似简洁一点。