码迷,mamicode.com
首页 > 编程语言 > 详细

多线程

时间:2014-06-21 06:28:33      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   code   tar   color   

一个进程至少有一个线程;同一个进程中的多个线程之间可以"并发"执行!

 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方法,返回值类型为TimeSpan
21             TimeSpan time = endTime.Subtract(beginTime);
22             MessageBox.Show("计算完毕,耗时:"+time.TotalMilliseconds.ToString());//转化为毫秒形式
23         }

 

线程肯定也是要执行一段代码的。所以要产生一个线程,必须先为该线程写一个方法,这个方法中的代码就是该线程运行所要执行的代码。(找个人来做一件事情)

线程启动时,通过委托调用该方法------------ (线程启动时,调用传过来的委托,委托就会执行相应的方法,实现线程执行方法)。

产生一个线程的4步骤:

  1. 编写产生线程所要执行的方法-----Count()
  2. 引用System.Threading命名空间----------using System.Threading;
  3. 实例化Thread类,并传入一个指向线程所要运行方法的委托。(这时候这个线程已经产生,但是还没有运行)
  4. 调用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方法,返回值类型为TimeSpan
11             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类的一些重要成员(*)

  1. Start()启动线程
  2. Abort()终止线程
  3. Sleep() 静态方法,可以使当前线程停止一段时间运行
  4. Name线程名
  5. Thread.CurrentThread获得当前的线程引用

 

多线程,布布扣,bubuko.com

多线程

标签:style   class   blog   code   tar   color   

原文地址:http://www.cnblogs.com/skyl/p/3795534.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!