using System; using System.Threading; public class Interrupt { public static Thread sleeper; public static Thread worker; public static void Main() { sleeper = new Thread(new ThreadStart(SleepingThread)); worker = new Thread(new ThreadStart(AwakeTheThread)); sleeper.Start(); worker.Start(); } public static void SleepingThread() { for (int i = 1; i < 10; i++) { Console.Write(i + " "); Console.WriteLine("Going to sleep at: " + i); Thread.Sleep(20); } } public static void AwakeTheThread() { for (int i = 11; i < 20; i++) { Console.Write(i + " "); if (sleeper.ThreadState == System.Threading.ThreadState.WaitSleepJoin) { Console.WriteLine("Interrupting the sleeping thread"); sleeper.Interrupt(); } } } }