您的位置:首页 > 编程语言 > C#

C#的多线程机制探索6

2011-03-09 13:22 465 查看
  然后在下面这个类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;
  }
  }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: