using System;
using System.Threading;
public class MonitorSample
{
public static void Main()
{
//一個標誌為元,如果是 0表示城市沒有出錯,如果是1表示有錯誤發生
int result = 0;
Warehouse warehouse = new Warehouse();
//下面使用warehouse物件初始畫 Producer 和 Consumer兩個類別,生產和消費資數均6次
Produce prod = new Produce(warehouse, 6);
Consumer cons = new Consumer(warehouse,6);
Thread produce = new Thread(new ThreadStart(prod.Threadrun));
Thread consumer = new Thread(new ThreadStart(cons.ThreadRun));
//生產者執行緒和消費者執行緒都已經被建立,但是沒有開始執行
try
{
produce.Start();
consumer.Start();
produce.Join();
consumer.Join();
Console.ReadLine();
}
catch(ThreadStartException e)
{
//當執行緒因為所處狀態的原因而不能執行被請求的操作
Console.WriteLine(e);
result = 1;
}
catch(ThreadInterruptedException e)
{
//當執行緒在等待狀態的時候終止
Console.WriteLine(e);
result = 1;
}
//當Main函數沒有回傳直,但下面這條語法可以向父處理序回傳執行結果
Environment.ExitCode = result;
}
}
沒有留言:
張貼留言