首页 > 代码库 > 多线程
多线程
一个进程至少有一个线程;同一个进程中的多个线程之间可以"并发"执行!
1 /// <summary> 2 /// 非多线程方法 3 /// </summary> 4 /// <param name="sender"></param> 5 /// <param name="e"></param> 6 private void btnCount_Click(object sender, EventArgs e) 7 { 8 Count(); 9 }10 11 public static void Count()12 {13 //去的计算前的时间14 DateTime beginTime = DateTime.Now;15 for (int i = 0; i < 999999999; i++) { }16 17 //去的计算后的时间18 DateTime endTime = DateTime.Now;19 20 //耗时 用Subtract方法,返回值类型为TimeSpan21 TimeSpan time = endTime.Subtract(beginTime);22 MessageBox.Show("计算完毕,耗时:"+time.TotalMilliseconds.ToString());//转化为毫秒形式23 }
线程肯定也是要执行一段代码的。所以要产生一个线程,必须先为该线程写一个方法,这个方法中的代码就是该线程运行所要执行的代码。(找个人来做一件事情)
线程启动时,通过委托调用该方法------------ (线程启动时,调用传过来的委托,委托就会执行相应的方法,实现线程执行方法)。
产生一个线程的4步骤:
- 编写产生线程所要执行的方法-----Count()
- 引用System.Threading命名空间----------using System.Threading;
- 实例化Thread类,并传入一个指向线程所要运行方法的委托。(这时候这个线程已经产生,但是还没有运行)
- 调用Thread实例的Start方法,标记该线程可以被CPU执行了,但具体执行时间由CPU决定。
1 public static void Count() 2 { 3 //去的计算前的时间 4 DateTime beginTime = DateTime.Now; 5 for (int i = 0; i < 999999999; i++) { } 6 7 //去的计算后的时间 8 DateTime endTime = DateTime.Now; 9 10 //耗时 用Subtract方法,返回值类型为TimeSpan11 TimeSpan time = endTime.Subtract(beginTime);12 MessageBox.Show("计算完毕,耗时:"+time.TotalMilliseconds.ToString());//将时间转化为毫秒表达形式13 }14 15 /// <summary>16 /// 多线程方法17 /// </summary>18 /// <param name="sender"></param>19 /// <param name="e"></param>20 private void btnCount2_Click(object sender, EventArgs e)21 {22 //引入命名空间using System.Threading;23 //ThreadStart是一个delegate委托,指向方法Count()24 Thread thread = new Thread(new ThreadStart(Count));25 26 //调用Thread实例的Start方法,标记该线程可以被CPU执行了,但具体执行时间由CPU决定。27 thread.Start();28 }
Thread类的一些重要成员(*)
- Start()启动线程
- Abort()终止线程
- Sleep() 静态方法,可以使当前线程停止一段时间运行
- Name线程名
- Thread.CurrentThread获得当前的线程引用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。