русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Состояния потока (перечисление ThreadState)


Дата добавления: 2015-07-09; просмотров: 1496; Нарушение авторских прав


Класс ThreadState определяет набор всех возможных состояний выполнения для потока. После создания потока и до завершения он находится по крайней мере в одном из состояний. Потоки, созданные в общеязыковой среде выполнения, изначально находятся в состоянии Unstarted, в то время как внешние потоки, приходящие в среду выполнения, находятся уже в состоянии Running. Потоки с состоянием Unstarted переходят в состояние Running при вызове метода Start. Не все комбинации значений ThreadState являются допустимыми; например, поток не может быть одновременно в состояниях Aborted и Unstarted.

В следующей таблице перечислены действия, вызывающие смену состояния.

 

Действие Состояние Потока
Поток создается в среде CLR. Unstarted
Поток вызывает метод Start. Running
Поток начинает выполнение. Running
Поток вызывает метод Sleep. WaitSleepJoin
Поток вызывает метод Wait для другого объекта. WaitSleepJoin
Поток вызывает метод Join для другого потока. WaitSleepJoin
Другой поток вызывает метод Interrupt. Running
Другой поток вызывает метод Suspend. SuspendRequested
Поток отвечает на запрос метода Suspend. Suspended
Другой поток вызывает метод Resume. Running
Другой поток вызывает метод Abort. AbortRequested
Поток отвечает на запрос метода Abort. Stopped
Поток завершен. Stopped

 

Начальное состояние потока (если это не главный поток), в котором он оказывается непосредственно после его создания – Unstarted. В этом состоянии он пребывает до тех пор, пока вызовом метода Start() он не будет переведён в состояние Running.

В дополнение к вышеперечисленным состояниям, существует также Background состояние, которое указывает, выполняется ли поток на фоне или на переднем плане.



Свойство Thread.ThreadState потока содержит текущее состояние потока. Для определения текущего состояния потока в приложении можно использовать битовые маски. Пример условного выражения:

 

if((myThread.ThreadState & (ThreadState.Stopped | ThreadState.Unstarted)) == 0) {…}

 

Члены перечисления:

Имя члена Описание Значение
Aborted Поток находится в Stopped состоянии.
AbortRequested Метод Thread.Abort был вызван для потока, но поток еще не получил задерживающийся объект System.Threading.ThreadAbortException, который будет пытаться завершить поток.
Background Поток выполняется как фоновый поток, что является противоположным к приоритетному потоку. Это состояние контролируется заданием свойства Thread.IsBackground.
Running Поток был запущен, он не заблокирован, и нет задерживающегося объекта ThreadAbortException.
Stopped Процесс остановлен.
StopRequested Поток запрашивается на остановку. Это только для внутреннего использования.
Suspended Работа потока была приостановлена.
SuspendRequested Запрашивается приостановка работы потока.
Unstarted Метод Thread.Start не был вызван для потока.
WaitSleepJoin Поток заблокирован в результате вызова к методам Wait, Sleep или Join.

 

Ниже приводится диаграмма состояний потока.

 

 

 



<== предыдущая лекция | следующая лекция ==>
Метод Join() | Одновременное пребывание потока в различных состояниях


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 3.866 сек.