Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
        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();
        }