在创建线程时:创建不带参数的线程可用 ThreadStart;创建带一个 object 参数的线程可用 ParameterizedThreadStart。但有时我们看到有些人的代码又没有用这两个。比如:
其实,以上四个都是正确的,因为从 .NET 2.0 开始 ThreadStart、ParameterizedThreadStart 就可以省略了,.NET 会自动去寻找合适的委托。
当然,如果您的方法是重载的,既有没有参数的,也有一个 object 参数的,那 .NET 就无法自动识别了,得指定 ThreadStart 或 ParameterizedThreadStart。
顺便说一句,MyThread、MyThreadWithParameter 在这里是静态的方法,实际上实例对象的方法也是可以的,比如:myClass.MyThread、myClass.MyThreadWithParameter。