Demonstrate thread priorities : Thread Properties « Thread « C# / C Sharp






Demonstrate thread priorities

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


           
       








Related examples in the same category

1.Current Thread Properties
2.illustrates the use of thread prioritiesillustrates the use of thread priorities
3.illustrates the ThreadState propertyillustrates the ThreadState property
4.Use IsAlive to wait for threads to end