A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 乔利柱 中级黑马   /  2012-10-22 10:00  /  1259 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 乔利柱 于 2012-10-24 13:16 编辑

Thread t = new Thread(new ThreadStart(Go));
Thread t1 = new Thread(Go);
这两种创建线程的方式有什么区
在应用中 需要注意些什么

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

1 个回复

倒序浏览
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,否则用后者写法更简单。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马