using System;
using System.Threading;
// Use IsAlive to wait for threads to end.(用IsAlive来确定线程结束时间).
class MyThread
{
public int count;
public Thread thrd;
public MyThread(string name)
{
count = 0;
thrd = new Thread(this.run); // use method group conversion
thrd.Name = name; // set the name of the thread
thrd.Start(); // start the thread(开启线程)
}
// Entry point of thread.
void run()
{
Console.WriteLine(thrd.Name + " starting.");
do
{
Thread.Sleep(500);
Console.WriteLine("In " + thrd.Name + ", count is " + count);
count++;
} while (count < 10);
Console.WriteLine(thrd.Name + "terminating.");
}
}
class MoreThreads
{
public static void Main()
{
Console.WriteLine("Main thread starting.");
//Construct three threads.(建立三个线程)
MyThread mt1 = new MyThread("child #1");
MyThread mt2 = new MyThread("child #2");
MyThread mt3 = new MyThread("child #3");
do
{
Console.Write(".");
Thread.Sleep(100);
} while (mt1.thrd.IsAlive &&
mt2.thrd.IsAlive &&
mt3.thrd.IsAlive);
Console.WriteLine("Main thread ending.");
}
}