Создание и запуск задачи

Параллелизм задач

Введение

Параллелизм задач (task parallelism) - это низкоуровневый подход к распараллеливанию задач с помощью PFX. Классы этого уровня определены в пространстве имен System.Threading.Tasks (Табл. 7.1).

Таблица 7.1. Основные классы пространства имен System.Threading.Task
Класс Описание
Task Представляет асинхронную операцию.
Task <TResult> Представляет асинхронную операцию, которая возвращает значение.
TaskScheduler Объект, обрабатывающий низкоуровневую постановку задач в очередь на потоки.
TaskFactory Для создания объекта Task.
TaskFactory <TResult> Для создания объекта Task, с возвращаемым значением.

Создание и запуск задачи

Как уже писалось в "Введение в асинхронные задачи" задачи можно создавать различными способами. Один из таких способов - это использование лямда-выражения и метода Task.Factory.StartNew():

Task.Factory.StartNew (() => Console.WriteLine ("Hello World!"));


увеличить изображение
Рис. 7.1.Результат выполнения программы с использованием класса Task

Аналогично, можно было вывести на экран сообщение "Hello World!", вначале создав объект Task, а затем вызвав метод Start():

Task task = new Task (() => Console.Write ("Hello World!"));

task.Start();

Что бы выполнить задачу синхронно (в том же потоке) небходимо вызвать метод RunSynchronously() вместо вызова метода Start():

Task task = new Task (() => Console.Write ("Hello World!"));

task.RunSynchronously()

Класс Task <TResult>, позволяет получить определенный набор данных после завершения выполнения задачи:

Task<int> task = Task.Factory.StartNew< int > (()

{

int i,c,j;

c=5;

j=5;

i=c+j;

return i;

});

 

DoSomething(); // Выполнение другой операции асинхронно

Console.WriteLine("Результат выполнения задачи:"+task.Result);

Console.ReadLine();


увеличить изображение
Рис. 7.2.Результат выполнения программы с использованием класса Task <TResult>








Дата добавления: 2017-06-02; просмотров: 223;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.