/*
C#: The Complete Reference
by Herbert Schildt
Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/
// Demonstrate thread priorities.
using System;
using System.Threading;
class MyThread {
public int count;
public Thread thrd;
static bool stop = false;
static string currentName;
/* Construct a new thread. Notice that this
constructor does not actually start the
threads running. */
public MyThread(string name) {
count = 0;
thrd = new Thread(new ThreadStart(this.run));
thrd.Name = name;
currentName = name;
}
// Begin execution of new thread.
void run() {
Console.WriteLine(thrd.Name + " starting.");
do {
count++;
if(currentName != thrd.Name) {
currentName = thrd.Name;
Console.WriteLine("In " + currentName);
}
} while(stop == false && count < 1000000000);
stop = true;
Console.WriteLine(thrd.Name + " terminating.");
}
}
public class PriorityDemo {
public static void Main() {
MyThread mt1 = new MyThread("High Priority");
MyThread mt2 = new MyThread("Low Priority");
// Set the priorities.
mt1.thrd.Priority = ThreadPriority.AboveNormal;
mt2.thrd.Priority = ThreadPriority.BelowNormal;
// Start the threads.
mt1.thrd.Start();
mt2.thrd.Start();
mt1.thrd.Join();
mt2.thrd.Join();
Console.WriteLine();
Console.WriteLine(mt1.thrd.Name + " thread counted to " +
mt1.count);
Console.WriteLine(mt2.thrd.Name + " thread counted to " +
mt2.count);
}
}
|