当前位置:编程学习 > C#/ASP.NET >>

不可不知的C#基础 3. 线程浅析

线程可以使你的项目运行得更加的流畅.

什么是线程呢?

线程(thread)是程序执行流的最小单元, 是程序中一个单一的顺序控制流程. 每个程序最少有一个线程, 那就是程序本身.

在C#中, 你可以使用 System.Threading 提供的类,接口和方法实现线程的所有操作.

单线程操作

想象着你走进快餐店, 大叫一声"来碗兰州拉面", 然后就坐在饭桌上等. 当厨师听到你的要求时,他就开始做兰州拉面了. 理论上讲, 当你叫了以后, 厨师就已经收到了命令.

用代码可以这样表达:

 
	static void Main(string[] args)
{
    string name = "兰州拉面";
    Console.WriteLine("来碗" + name);
    PlaceOrder(name);
    Console.WriteLine("坐在饭桌上....");
    Console.Read();
}
static void PlaceOrder(string name)
{
    Console.WriteLine("开始制作" + name);
}
 
运行程序, 你会发现输出结果是:

ScreenShot056

从显示的结果来看, 这个厨师的动作非常的快, 他一听到命令, 马上就开始了. 为了让这个程序的模拟比较真实, 我们可以想象"我的动作"是一个线程, 而"厨师做拉面"是一个线程.
如果我们运用线程来实现就有点意思了:
 
	static void PlaceOrder(string name)
  {
      Thread thread1 = new Thread(new ThreadStart(Cooking));
      thread1.Start();
  }
  static void Cooking()
  {
      Console.Write("开始制作");
  }

运行程序, 你会发现输出结果是:

ScreenShot055

 

这是表示虽然厨师听到你的声音了,但是你坐在饭桌上的动作是在他开始做拉面之前. -- 更加的合情合理, 是吗?

我们还可以引入参数:

	static void PlaceOrder(string name)
{
    Thread thread1 = new Thread(t => Cooking(name));
    thread1.Start();
}
static void Cooking(string name)
{
    Console.WriteLine("开始制作" + name);
}

 

注意上面的参数的传递方法只用于.net 3.5/4

 

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,