黑马程序员技术交流社区

标题: 创建线程的疑惑 [打印本页]

作者: 乔利柱    时间: 2012-10-22 10:00
标题: 创建线程的疑惑
本帖最后由 乔利柱 于 2012-10-24 13:16 编辑

Thread t = new Thread(new ThreadStart(Go));
Thread t1 = new Thread(Go);
这两种创建线程的方式有什么区
在应用中 需要注意些什么
作者: 刘俊红    时间: 2012-10-22 14:28
Thread t = new Thread(new ThreadStart(Go));
Thread t1 = new Thread(Go);

两种方法在C#2.0及其更高版本没有区别:前者是C#1.0的语法;后者是C#2.0新增加的语法。


Thread类构造函数的参数是一个委托,括号里的表示定义一个委托实例。
这两条语句都是把一个委托实例作为参数,但是:

1)  前者是属于C#1.0的语法,通过 new ThreadStart(方法名) 完整的定义了一个委托实例。
他虽然不是很难看,但是也不方便,特别是在一个比较长的语句里。

于是,C#2.0 对这个语言特性进行了简化:一个方法能隐式转换为 一个兼容的委托实例。这就是「方法组转换」。

2) 所以,后者就是前者在C#2.0极更高版本的简写方法。 除非还在使用C#1.0,否则用后者写法更简单。






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2