С помощью языка .NET можно создавать приложения, которые выполняют несколько операций одновременно. Операции, которые потенциально могут задержать выполнение других операций, выполняются в отдельных потоках; такой способ организации работы приложения называется многопоточностью или свободным созданием потоков.
Приложения, использующие многопоточность, более оперативно реагируют на действия пользователя, поскольку пользовательский интерфейс остается активным, в то время как задачи, требующие интенсивной работы процессора, выполняются в других потоках. Многопоточность также полезна при создании масштабируемых приложений, так как можно добавлять потоки по мере увеличения рабочей нагрузки.
Иногда невозможно остановить поток совместно, так как он запускает сторонний код, не предназначенный для совместной отмены. В этом случае вы можете выполнить принудительное завершение. Чтобы принудительно завершить выполнение потока, воспользуйтесь методом Thread.Abort в .NET Framework. Этот метод вызывает ThreadAbortException в потоке, для которого был вызван. Дополнительные сведения см. в разделе Уничтожение потоков. Метод Thread.Abort не поддерживается в .NET Core. Если необходимо завершить выполнение стороннего кода принудительно в .NET Core, запустите его в отдельном процессе и используйте Process.Kill метод.
Он System.Threading.CancellationToken недоступен до платформа .NET Framework 4. Чтобы остановить поток в более ранних версиях платформа .NET Framework, используйте методы синхронизации потоков для реализации совместной отмены вручную. Например, вы можете создать изменяемое логическое поле shouldStop и использовать его для запроса остановки кода, выполняемого потоком. Дополнительные сведения см. в справочнике по C# и в этой статье: System.Threading.Volatile.
Используйте метод Thread.Join, чтобы вызывающий поток ждал завершения останавливаемого потока.
Практическое руководство. Приостановка или прерывание потока
Возвращает или задает логическое значение, которое указывает, является ли поток фоновым потоком. Фоновые потоки похожи на потоки переднего плана. Однако фоновый поток не предотвращает остановку процесса. Когда обработка всех основных потоков закончена, общеязыковая среда выполнения завершает процесс, применяя метод Abort к тем фоновым потокам, которые еще продолжают существовать. См. дополнительные сведения об основных и фоновых потоках.
Возвращает или задает ThreadPriority значение, используемое операционной системой для определения приоритета планирования потоков. Дополнительные сведения см. в разделе Планирование потоков и в справочнике по ThreadPriority.
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Отзыв о .NET
.NET — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв:
В этом модуле рассматривается процесс создания, создания, создания и перехвата настраиваемых исключений в консольном приложении C#. Практические действия обеспечивают настройку свойств исключений, создание исключений и использование свойств исключения для устранения исключения в блоке catch.