static void Main() { PriorityTest priorityTest = new PriorityTest(); ThreadStart startDelegate = priorityTest.ThreadMethod; Thread threadOne = new Thread(startDelegate); threadOne.Name = "ThreadOne"; threadOne.Priority = ThreadPriority.Lowest; Thread threadTwo = new Thread(startDelegate); threadTwo.Name = "ThreadTwo"; threadTwo.Priority = ThreadPriority.Highest; threadOne.Start(); threadTwo.Start(); // Дать 10 секунд на выполнение потоков Thread.Sleep(1000); // Остановка работы всех потоков priorityTest.LoopSwitch = false; // Delay Console.ReadKey(); }
static void Main() { Console.WriteLine("Press any key..."); Console.ReadKey(); Console.WriteLine("Приоритет первичного потока по умолчанию: {0}", Thread.CurrentThread.Priority); PriorityTest priorityTest = new PriorityTest(); Thread[] threads = new Thread[9]; for (int i = 0; i < 9; i++) { threads[i] = new Thread(priorityTest.Method); } // Установка приоритетов потокам threads[0].Priority = ThreadPriority.Lowest; for (int i = 1; i < 9; i++) { threads[i].Priority = ThreadPriority.Highest; } // Запуск 1-го потока с низким приоритетом threads[0].Start(); // Приостановка запуска потоков с высоким приоритетом Thread.Sleep(2000); // Запуск 8-и потоков с высоким приоритетом for (int i = 1; i < 9; i++) { threads[i].Start(); } // Дать 10 секунд на выполнение потоков Thread.Sleep(10000); Console.WriteLine("Первичный поток проснулся и втиснулся между высокоприоритетных потоков"); // Остановка работы всех потоков priorityTest.stop = true; // Delay Console.ReadKey(); }
static void Main() { Console.WriteLine("Press any key..."); Console.ReadKey(); Console.WriteLine("Приоритет первичного потока по умолчанию: {0}", Thread.CurrentThread.Priority); PriorityTest priorityTest = new PriorityTest(); Thread[] threads = new Thread[9]; for (int i = 0; i < 9; i++) { threads[i] = new Thread(priorityTest.Method); } // Установка приоритетов потокам threads[0].Priority = ThreadPriority.Lowest; for (int i = 1; i < 9; i++) { threads[i].Priority = ThreadPriority.Highest; } // Запуск 1-го потока с низким приоритетом threads[0].Start(); // Приостановка запуска потоков с высоким приоритетом Thread.Sleep(2000); // Запуск 8-и потоков с высоким приоритетом for (int i = 1; i < 9; i++) { threads[i].Start(); } Console.WriteLine(new string('-', 80)); // Delay Console.ReadKey(); }