黑马程序员技术交流社区
标题:
一个关于线程的问题
[打印本页]
作者:
刘秋菊
时间:
2012-7-22 22:01
标题:
一个关于线程的问题
private void button2_Click(object sender, EventArgs e)
{
Thread thread = new Thread(count);
thread.Start();
MessageBox.Show("线程");
}
void count()
{
for (int i = 0; i < 999999999; i++)
{
}
}
count() 是方法对吧?可是看Thread thread = new Thread(count);,count()又应该是一个 委托,这怎么解释呢?
作者:
刘建素
时间:
2012-7-22 22:17
正常写的话应该是
ThreadStart start = new ThreadStart(方法名);
查帮助ThreadStart 类型为委托
然后new Thread(start);将委托传入
我们平时都习惯简写直接把方法放入new Thread中是因为C#会自动帮我们识别为传入为委托 而非方法
作者:
黑马杨凯
时间:
2012-7-22 23:28
本帖最后由 黑马杨凯 于 2012-7-22 23:38 编辑
可以复习下委托
通过查看Thread类的构造方法
public Thread(ThreadStart start);参数为ThreadStart 类型
查看ThreadStart
public delegate void ThreadStart();
这是声明的委托,当做类型来用,所以构造函数public Thread(ThreadStart start);的参数是一个委托,调用此够构造函数需要一个委托,而Count()正好与声明的委托类型ThreadStart匹配,可以赋给委托,而委托赋值可以使用简化写法如
ThreadStart start=Count;(也就是ThreadStart start = new ThreadStart(Count); 的缩写),所以你传入的是一个 new ThreadStart(Count)委托,并且这个委托指向Count()方法
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2