C#的多线程机制初探(6)

C#的多线程机制初探(6)


Author: 挽留刀  &;nbspFrom:Internet


                然后在下面这个类MonitorSample的Main()函数中我们要做的就是创建两个线程分别作为生产者和消费者,使用CellProd.ThreadRun()方法和CellCons.ThreadRun()方法对同一个Cell对象进行操作。
 
  public class MonitorSample
  {
  public static void Main(String[] args)
  {
  int result = 0; //一个标志位,如果是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)
  {
  //当线程因为所处状态的原因而不能执行被请求的操作
  Console.WriteLine(e);
  result = 1;
  }
  catch (ThreadInterruptedException e)
  {
  //当线程在等待状态的时候中止
  Console.WriteLine(e);
  result = 1;
  }
  //尽管Main()函数没有返回值,但下面这条语句可以向父进程返回执行结果
  Environment.ExitCode = result;
  }
  } 
    (2005-5-05:04:17)

 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [C#] 的这些文章也感兴趣:

C 的类与C#的类
个性化的分页实例
Beginnerwithc#3
在WinForm的DataGrid中添加按钮列
VisualC#的菜单编程
C#.net下轻松制作不规则窗体
Ultimate List of Free Windows Software from Microsoft
Images到xps,pdf的转换
C#基类应用--字符串处理类
编写自己的PING工具