Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
{ Lowest, BelowNormal, Normal, // Стандартное значение. AboveNormal, Highest}В случае присваивания уровню приоритета потока значения, отличающегося от стандартного(
ThreadPriority.NormalThreadPriority.HighestОпять-таки, если планировщик потоков занят решением определенной задачи (например, синхронизацией объекта, переключением потоков либо их перемещением), то уровень приоритета, скорее всего, будет соответствующим образом изменен. Однако при прочих равных условиях среда .NET Core Runtime прочитает эти значения и проинструктирует планировщик потоков о том, как лучше выделять кванты времени. Потоки с идентичными уровнями приоритета должны получать одинаковое количество времени на выполнение своей работы.
В большинстве случаев необходимость в прямом изменении уровня приоритета потока возникает редко (если вообще возникает). Теоретически можно так повысить уровень приоритета набора потоков, что в итоге воспрепятствовать выполнению низкоприоритетных потоков с их запрошенными уровнями (поэтому соблюдайте осторожность).
Ручное создание вторичных потоков
Когда вы хотите программно создать дополнительные потоки для выполнения какой-то единицы работы, то во время применения типов из пространства имен
System.Threading1. Создать метод, который будет служить точкой входа для нового потока.
2. Создать новый делегат
ParametrizedThreadStartThreadStart3. Создать объект
ThreadParametrizedThreadStart/Threadstart4. Установить начальные характеристики потока (имя, приоритет и т.д.).
5. Вызвать метод
Thread.Start()Согласно шагу 2 для указания на метод, который будет выполняться во вторичном потоке, можно использовать два разных типа делегата. Делегат
ThreadStartОграничение
ThreadStartParametrizedThreadStartSystem.ObjectSystem.ObjectThreadStartParametrizedThreadStartvoidРабота с делегатом ThreadStart
Чтобы проиллюстрировать процесс построения многопоточного приложения (а также его полезность), создайте проект консольного приложения по имени
SimpleMultiThreadAppПосле импортирования пространства имен
System.ThreadingPrinterusing System;using System.Threading;namespace SimpleMultiThreadApp{ public class Printer { public void PrintNumbers() { // Вывести информацию о потоке. Console.WriteLine("-> {0} is executing PrintNumbers()", Thread.CurrentThread.Name); // Вывести числа. Console.Write("Your numbers: "); for(int i = 0; i < 10; i++) { Console.Write("{0}, ", i); Thread.Sleep(2000); } Console.WriteLine(); } }}Добавьте в файл
Program.csPrintNumbers()ThreadStartPrintNumbers()ThreadStart()using System;using System.Threading;using SimpleMultiThreadApp;Похожие книги на "Язык программирования C#9 и платформа .NET5", Троелсен Эндрю
Троелсен Эндрю читать все книги автора по порядку
Троелсен Эндрю - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки mir-knigi.info.