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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘秋菊 中级黑马   /  2012-7-22 22:01  /  1299 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  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()又应该是一个 委托,这怎么解释呢?

2 个回复

倒序浏览
正常写的话应该是
ThreadStart start = new ThreadStart(方法名);
查帮助ThreadStart 类型为委托
然后new Thread(start);将委托传入
我们平时都习惯简写直接把方法放入new Thread中是因为C#会自动帮我们识别为传入为委托 而非方法
回复 使用道具 举报
本帖最后由 黑马杨凯 于 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()方法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马