Current Thread Properties
using System; using System.Collections.Generic; using System.Text; using System.Threading; class Program { static int interval; static void Main(string[] args) { interval = 100; ThreadPool.QueueUserWorkItem(new WaitCallback(StartMethod)); Thread.Sleep(100); ThreadPool.QueueUserWorkItem(new WaitCallback(StartMethod)); Console.ReadLine(); } static void StartMethod(Object stateInfo) { DisplayNumbers("Thread " + DateTime.Now.Millisecond.ToString()); Console.WriteLine("Thread Finished"); } static void DisplayNumbers(string GivenThreadName) { Console.WriteLine("Starting thread: " + GivenThreadName); for (int i = 1; i <= 8 * interval; i++) { if (i % interval == 0) { Console.WriteLine("Count has reached " + i); Console.WriteLine("CurrentCulture: " + Thread.CurrentThread.CurrentCulture.ToString()); Console.WriteLine("IsThreadPoolThread: " + Thread.CurrentThread.IsThreadPoolThread.ToString()); Console.WriteLine("ManagedThreadId: " + Thread.CurrentThread.ManagedThreadId.ToString()); Console.WriteLine("Priority: " + Thread.CurrentThread.Priority.ToString()); Console.WriteLine("ThreadState: " + Thread.CurrentThread.ThreadState.ToString()); Thread.Sleep(1000); } } } }
1. | illustrates the use of thread priorities | ||
2. | illustrates the ThreadState property | ||
3. | Use IsAlive to wait for threads to end | ||
4. | Demonstrate thread priorities |