Член уровня экземпляра Описание
IsAlive Возвращает логическое значение, сообщающее о том, запущен ли данный поток
IsBackground Читает или устанавливает значение, сообщающее о том, является ли данный поток "фоновым" (дополнительные подробности будут предложены чуть позже)
Name Позволяет задать понятное строковое имя потока
Priority Читает или устанавливает приоритет потока, которому может быть назначено значение из перечня ThreadPriority
ThreadState Читает информацию о состоянии потока, которая может принимать значения из перечня ThreadState
Abort() Дает указание среде CLR завершить поток как можно быстрее
Interrupt()Выводит (например, путем активизации) текущий поток из периода ожидания
Join() Блокирует вызывающий поток до завершения указанного потока (того, для которого вызывается Join())
Resume() Возобновляет выполнение приостановленного ранее потока  
Start() Дает указание среде CLR как можно быстрее начать выполнение потока
Suspend() Приостанавливает выполнение потока. Если поток уже приостановлен, вызов Suspend() игнорируется
<p>Получение информации об отдельном потоке</p>

Напомним, что точка входа компоновочного блока (т.е. метод Main()) при выполнении оказывается в первичном потоке. Чтобы привести типичный пример использования типа Thread, предположим, что у нас есть новое консольное приложение с именем ThreadState. Вы знаете, что статическое свойство Thread.СurrentThread позволяет получить тип Thread, представляющий выполняемый в настоящий момент поток. Получив текущий поток, вы можете вывести на экран различную информацию о потоке.

// Не забудьте указать 'using' для пространства имен System.Threading.

static void Main(string[] args) {

 Console.WriteLine("***** Информация первичного потока *****\n");

 // Получение текущего потока и назначение ему имени.

 Thread primaryThread = Thread.CurrentThread;

 primaryThread.Name = "ThePrimaryThread";

 // Подробности хостинга домена приложения и контекста.

 Console.WriteLine("Имя текущего домена приложения: {0}";

 Thread.GetDomain().FriendlyName);

 Console.WriteLine("Идентификатор текущего контекста: {0}", Thread.CurrentContext.ContextID);

 // Вывод информации о данном потоке.

 Console.WriteLine("Имя потока: {0}", primaryThreаd.Name);

 Console.WriteLine("Запущен ли поток? {0}", primaryThread.IsAlive);

 Console.WriteLine("Уровень приоритета: {0}", primaryThread.Priority);

 Console.WriteLine("Состояние потока: {0}", primaryThread.ThreadState);

 Console.ReadLine();

}

На рис. 14.5 показан вывод этого приложения.

Рис. 14.5. Сбор статистики о потоке

<p>Свойство Name</p>
Перейти на страницу:

Похожие книги