Читаем C# 4.0 полное руководство - 2011 полностью

ThreadState.SuspendRequested

ThreadState.Unstarted

ThreadState.WaitSleepJoin

Все эти значения не требуют особых пояснений, за исключением одного. ЗначениеThreadState . WaitsleepJoinобозначает состояние, в которое поток переходит во время ожидания в связи с вызовом методаWait , Sleep илиJoin .

Применение основного потока

Как пояснялось в самом начале этой главы, у всякой программы на C# имеется хотя бы один поток исполнения, называемыйосновным.Этот поток программа получает автоматически, как только начинает выполняться. С основным потоком можно обращаться таким же образом, как и со всеми остальными потоками.

Для доступа к основному потоку необходимо получить объект типаThread,который ссылается на него. Это делается с помощью свойстваCurrentThread,являющегося членом классаThread.Ниже приведена общая форма этого свойства.

Данное свойство возвращает ссылку на тот поток, в котором оно используется. Поэтому если свойствоCurrentThreadиспользуется при выполнении кода в основном потоке, то с его помощью можно получить ссылку на основной поток. Имея в своем распоряжении такую ссылку, можно управлять основным потоком так же, как и любым другим потоком.

В приведенном ниже примере программы сначала получается ссылка на основной поток, а затем получаются и устанавливаются имя и приоритет основного потока.

// Продемонстрировать управление основным потоком.

using System;

using System.Threading;

class UseMain {

static void Main {

Thread Thrd;

// Получить основной поток.

Thrd = Thread.CurrentThread;

// Отобразить имя основного потока, if(Thrd.Name == null)

Console.WriteLine("У основного потока нет имени."); else

Console.WriteLine("Основной поток называется: " + Thrd.Name);

// Отобразить приоритет основного потока.

Console.WriteLine("Приоритет: " + Thrd.Priority);

Console.WriteLine;

// Установить имя и приоритет.

Console.WriteLine("Установка имени и приоритета.\п");

Thrd.Name = "Основной Поток";

Thrd. Priority = ThreadPriority. AboveNormal^-

Console. WriteLine ("Теперь основной поток называется: " +

Thrd.Name);

Console.WriteLine("Теперь приоритет: " + Thrd.Priority);

}

}

Ниже приведен результат выполнения этой программы.

У основного потока нет имени.

Приоритет: Normal

Установка имени и приоритета.

Теперь основной поток называется: Основной Поток Теперь приоритет: AboveNormal

Следует, однако, быть очень внимательным, выполняя операции с основным потоком. Так, если добавить в конце методаMain следующий вызов методаJoin:

Thrd.Join ;

программа никогда не завершится, поскольку она будет ожидать окончания основного потока!

Перейти на страницу:

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

Access 2002: Самоучитель
Access 2002: Самоучитель

В книге рассматривается широкий круг вопросов, связанных с использованием программной среды Access 2002, которая является составной частью пакета Office 2002 и предназначена для создания банка данных в самых различных предметных областях.Подробно описывается методика проектирования объектов базы данных (таблицы, формы, отчеты, страницы доступа к данным, запросы, модули).Детально обсуждаются вопросы создания интегрированной базы данных в единой среде Access 2002: формирование БД с нуля, конвертирование в программную среду баз данных, созданных в ином программном окружении – Clarion, FoxPro.Особое внимание уделяется формированию разнообразных запросов к интегрированной базе данных Access 2002 с использованием языков программирования SQL, VBA и макросов.Приводятся общие сведения о возможностях языка обмена данными между различными компьютерами и приложениями (XML). Описываются возможности использования гиперссылок, связывающих базу данных с другими программными продуктами. Объясняется, как можно работать с базой данных Access 2002 без установки ее на компьютер, используя технологию ODBC (Open Data Base Connectivity). В приложениях приводятся количественные параметры Access 2002 и связанная с этой СУБД терминология.Предлагаемая книга будет полезна специалистам, занимающимся практической разработкой банков данных и приложений на их основе, а также студентам вузов, изучающим информатику.

Павел Юрьевич Дубнов

Программирование, программы, базы данных / ОС и Сети / Книги по IT