Demonstrate thread priorities
/* 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); } }
1. | Current Thread Properties | ||
2. | illustrates the use of thread priorities | ||
3. | illustrates the ThreadState property | ||
4. | Use IsAlive to wait for threads to end |