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

// пока потоки не завершатся, class JoinThreads { static void Main {

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

// Сконструировать    три потока.

mtl.Thrd.Join;

Console.WriteLine("Потомок #1 присоединен."); mt2.Thrd.Join;

Console.WriteLine("Потомок #2 присоединен."); mt3.Thrd.Join;

Console.WriteLine("Потомок #3 присоединен.");

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

}

}

Ниже приведен один из возможных результатов выполнения этой программы. Напомним, что он может отличаться в зависимости от среды выполнения, операционной системы и прочих факторов, влияющих на выполнение программы.

Основной поток начат.

Потомок #1 начат. •

Потомок #2 начат.

Потомок #3 начат.


в


потоке


Потомок


#3,


Count


=


3


в


потоке


Потомок


#1,


Count


=


4


в


потоке


Потомок


#2,


Count


=


4


в


потоке


Потомок


#3,


Count


=


4


в


потоке


Потомок


#1,


Count


=


5


в


потоке


Потомок


#2,


Count


=


5


в


потоке


Потомок


#3,


Count


=


5


в


потоке


Потомок


#1,


Count


=


6


в


потоке


Потомок


#2,


Count


=


6


в


потоке


Потомок


#3,


Count


=


6


в


потоке


Потомок


#1,


Count


=


7


в


потоке


Потомок


#2,


Count


=


7


в


потоке


Потомок


#3,


Count


=


7


в


потоке


Потомок


#1/


Count


=


8


в


потоке


Потомок


#2,


Count


=


8


в


потоке


Потомок


#3,


Count


=


8


в


потоке


Потомок


#1/


Count


=


9


Потомок #1 завершен.


В


потоке


Потомок


#2,


Count


=


9


Потомок #2 завершен.


В


потоке


Потомок


#3,


Count


=


9


Потомок #3 завершен.

Потомок #1 присоединен.

Потомок #2 присоединен.

Потомок #3 присоединен.

Основной поток завершен.

Как видите, выполнение потоков завершилось после возврата из последовательного ряда вызовов методаJoin .

Передача аргумента потоку

Первоначально в среде .NET Framework нельзя было передавать аргумент потоку, когда он начинался, поскольку у метода, служившего в качестве точки входа в поток, не могло быть параметров. Если же потоку требовалось передать какую-то информацию, то к этой цели приходилось идти различными обходными путями, например использовать общую переменную. Но этот недостаток был впоследствии устранен, и теперь аргумент может быть передан потоку. Для этого придется воспользоваться другими формами методаStart , конструктора классаThread,а также метода, служащего в качестве точки входа в поток.

Аргумент передается потоку в следующей форме методаStart .

public void Start(objectпараметр)

Объект, указываемый в качестве аргументапараметр, автоматически передается методу, выполняющему роль точки входа в поток. Следовательно, для того чтобы передать аргумент потоку, достаточно передать его методуStart .

Для применения параметризированной формы методаStart потребуется следующая форма конструктора классаThread:

public Thread(ParameterizedThreadStartзапуск)

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

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

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