using System;
using System.Threading;
class MyThread {
public int count;
public Thread thrd;
public MyThread(string name, int num) {
count = 0;
thrd = new Thread(new ParameterizedThreadStart(this.run));
thrd.Name = name;
thrd.Start(num);
}
void run(object num) {
Console.WriteLine(thrd.Name + " starting with count of " + num);
do {
Thread.Sleep(500);
Console.WriteLine("In " + thrd.Name + ", count is " + count);
count++;
} while(count < (int) num);
Console.WriteLine(thrd.Name + " terminating.");
}
}
class MainClass {
public static void Main() {
MyThread mt = new MyThread("Child #1", 5);
MyThread mt2 = new MyThread("Child #1", 3);
do {
Thread.Sleep(100);
} while (mt.thrd.IsAlive | mt2.thrd.IsAlive);
Console.WriteLine("Main thread ending.");
}
}
Output
Child #1 starting with count of 5
Child #1 starting with count of 3
In Child #1, count is 0
In Child #1, count is 0
In Child #1, count is 1
In Child #1, count is 1
In Child #1, count is 2
In Child #1, count is 2
Child #1 terminating.
In Child #1, count is 3
In Child #1, count is 4
Child #1 terminating.
Main thread ending.