繁体中文
设为首页
加入收藏
当前位置:.Net技术首页 >> 算法/线程 >> C#的多线程机制探索(续2)

C#的多线程机制探索(续2)

2004-10-01 08:26:10  作者:  来源:互联网  浏览次数:19  文字大小:【】【】【
简介:然后在下面这个类MonitorSample的Main()函数中我们要做的就是创建两个线程分别作为生产者和消费者,使用CellProd.ThreadRun()方法和CellCons.ThreadRun()方法对同一个Cell对象进行操作。 public class Moni...
关键字:C# 线程 机制

然后在下面这个类MonitorSample的Main()函数中我们要做的就是创建两个线程分别作为生产者和消费者,使用CellProd.ThreadRun()方法和CellCons.ThreadRun()方法对同一个Cell对象进行操作。

public class MonitorSample

{

  public static void Main(String[] args)

  {

  int result = 0; file://一个标志位,如果是0表示程序没有出错,如果是1表明有错误发生

  Cell cell = new Cell( );

  //下面使用cell初始化CellProd和CellCons两个类,生产和消费次数均为20次

  CellProd prod = new CellProd(cell, 20);

  CellCons cons = new CellCons(cell, 20);

  Thread producer = new Thread(new ThreadStart(prod.ThreadRun));

  Thread consumer = new Thread(new ThreadStart(cons.ThreadRun));

  //生产者线程和消费者线程都已经被创建,但是没有开始执行

  try

  {

    producer.Start( );

    consumer.Start( );

    producer.Join( );

    consumer.Join( );

    Console.ReadLine();

  }

  catch (ThreadStateException e)

  {

    file://当线程因为所处状态的原因而不能执行被请求的操作

    Console.WriteLine(e);

    result = 1;

  }

  catch (ThreadInterruptedException e)

  {

    file://当线程在等待状态的时候中止

    Console.WriteLine(e);

    result = 1;

  }

  //尽管Main()函数没有返回值,但下面这条语句可以向父进程返回执行结果

  Environment.ExitCode = result;

  }

}

责任编辑:admin
相关文章