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

Второй способ ввода параллелизм называетсяпараллелизмом задач.При таком подходе две операции или больше выполняются параллельно. Следовательно, параллелизм задач представляет собой разновидность параллелизма, который достигался в прошлом средствами классаThread.А к преимуществам, которые сулит применение TPL, относится простота применения и возможность автоматически масштабировать исполнение кода на несколько процессоров.

Класс Task

В основу TPL положен классTask.Элементарная единица исполнения инкапсулируется в TPL средствами классаTask,а неThread.КлассTaskотличается от классаThreadтем, что он является абстракцией, представляющей асинхронную операцию. А в классеThreadинкапсулируется поток исполнения. Разумеется, на системном уровне поток по-прежнему остается элементарной единицей исполнения, которую можно планировать средствами операционной системы. Но соответствие экземпляра объекта классаTaskи потока исполнения не обязательно оказывается взаимно-однозначным. Кроме того, исполнением задач управляет планировщик задач, который работает с пулом потоков. Это, например, означает, что несколько задач могут разделять один и тот же поток. КлассTask(и вся остальная библиотека TPL) определены в пространстве именSystem.Threading.Tasks.

Создание задачи

Создать новую задачу в виде объекта классаTaskи начать ее исполнение можно самыми разными способами. Для начала создадим объект типаTaskс помощью конструктора и запустим его, вызвав методStart . Для этой цели в классеTaskопределено несколько конструкторов. Ниже приведен тот конструктор, которым мы собираемся воспользоваться:

public Task(Actionдействие)

гдедействиеобозначает точку входа в код, представляющий задачу, тогда какAction— делегат, определенный в пространстве именSystem.Форма делегатаAction,которой мы собираемся воспользоваться, выглядит следующим образом.

public delegate void Action

Таким образом, точкой входа должен служить метод, не принимающий никаких параметров и не возвращающий никаких значений. (Как будет показано далее, делегатуActionможно также передать аргумент.)

Как только задача будет создана, ее можно запустить на исполнение, вызвав методStart . Ниже приведена одна из его форм.

public void 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