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

В обеих формахимяобозначает конкретное имя, передаваемое конструктору. Если в первой форме семафор, на который указываетимя,еще не существует, то он создается с помощью значений, определяемых параметрамиinitialCountиmaximumCount.А если он уже существует, то значения параметровinitialCountиmaximumCountигнорируются. После возврата из второй формы конструктора параметрcreatedNewбудет иметь логическое значениеtrue,если семафор был создан. В этом случае значения параметровini tialCountиmaximumCountиспользуются для создания семафора. Если же параметрcreatedNewбудетиметь логическое значениеfalse,значит, семафор уже существует и значения параметровinitialCountиmaximumCountигнорируются. Существует и третья форма конструктора классаSemaphore,в которой допускается указывать управляющий доступом объект типаSemaphoreSecurity.С помощью именованных семафоров можно синхронизировать взаимодействие процессов.

Применение событий

Для синхронизации в C# предусмотрен еще один тип объекта: событие. Существуют две разновидности событий: устанавливаемые в исходное состояние вручную и автоматически. Они поддерживаются в классахManualResetEventиAutoResetEventсоответственно. Эти классы являются производными от классаEventWaitHandle,находящегося на верхнем уровне иерархии классов, и применяются в тех случаях, когда один поток ожидает появления некоторого события в другом потоке. Как только такое событие появляется, второй поток уведомляет о нем первый поток, позволяя тем самым возобновить его выполнение.

Ниже приведены конструкторы классовManualResetEventиAutoResetEvent.

public ManualResetEvent(boolinitialState)public AutoResetEvent(boolinitialState)

Если в обеих формах параметрini tialStateимеет логическое значениеtrue,то о событии первоначально уведомляется. А если он имеет логическое значениеfalse,то о событии первоначально не уведомляется.

Применяются события очень просто. Так, для события типаManualResetEventпорядок применения следующий. Поток, ожидающий некоторое событие, вызывает методWaitOne для событийного объекта, представляющего данное событие. Если событийный объект находится в сигнальном состоянии, то происходит немедленный

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

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

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