Mega Code Archive

 
Categories / C# / Thread
 

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);    }  }