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

Count = 0; thrdName = name;

}

// Точка входа в поток, public void Run    {

Console.WriteLine(thrdName + " начат.");

do {

Thread.Sleep(500);

Console.WriteLine("В потоке " + thrdName + ", Count = " + Count);

Count++;

} while(Count < 10);

Console.WriteLine(thrdName + " завершен.");

}

class MultiThread { static void Main {

Console.WriteLine("Основной поток начат.");

// Сначала сконструировать объект типа MyThread.

MyThread mt = new MyThread("Потомок #1");

// Далее сконструировать поток из этого объекта.

Thread newThrd = new Thread(mt.Run);

// И наконец, начать выполнение потока. newThrd.Start; do {

Console.Write(".");

Thread.Sleep(100);

} while (mt.Count != 10);

Console.WriteLine("Основной поток завершен.");

}

}

Рассмотрим приведенную выше программу более подробно. В самом ее начале определяется классMyThread,предназначенный для создания второго потока исполнения. В методе Run этого класса организуется цикл для подсчета от 0 до 9. Обратите внимание на вызов статического методаSleep , определенного в классеThread.Этот метод обусловливает приостановление того потока, из которого он был вызван, на определенный период времени, указываемый в миллисекундах. Когда приостанавливается один поток, может выполняться другой. В данной программе используется следующая форма методаSleep:

public static void Sleep(intмиллисекунд_простоя)

гдемиллисекунд_простояобозначает период времени, на который приостанавливается выполнение потока. Если указанное количествомиллисекунд_простояравно нулю, то вызывающий поток приостанавливается лишь для того, чтобы предоставить возможность для выполнения потока, ожидающего своей очереди.

В методеMain новый объект типаThreadсоздается с помощью приведенной ниже последовательности операторов.

// Сначала сконструировать объект типа MyThread.

MyThread mt = new MyThread("Потомок #1");

// Далее сконструировать поток из этого объекта.

Thread newThrd = new Thread(mt.Run);

// И наконец, начать выполнение потока. newThrd.Start;

Как следует из комментариев к приведенному выше фрагменту кода, сначала создается объект типаMyThread.Затем этот объект используется для создания объекта типаThread,для чего конструктору этого объекта в качестве точки входа передается методmt.Run (). И наконец, выполнение потока начинается с вызова методаStart .

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

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

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