Слайд 1Лекция №11 TASK
Москва, 2019
Слайд 3Потоки с использованием делегатов
Слайд 4Потоки с использованием делегатов
Слайд 5Потоки с использованием делегатов
Слайд 6Потоки
Задача предоставляет следующие мощные функции по потоку и пулу потоков.
1.
Задача позволяет вернуть результат.
2. Это дает лучший программный контроль для
запуска и ожидания задачи.
3. Это уменьшает время переключения между несколькими потоками..
Слайд 7Потоки
Он может создать отношения родитель / потомок, когда одна задача
запускается из
другая задача.
6. Задание может отменить его выполнение с помощью
токенов отмены.
7. Задача оставляет CLR от накладных расходов на создание дополнительных потоков; вместо этого
неявно использует поток из пула потоков.
8. Асинхронная реализация проста в использовании, используя «async» и «await»
ключевые слова.
9. Задача ожидает завершения выполнения всех предоставленных объектов Задачи.
Слайд 8Потоки
Run () Возвращает задачу, которая ставит в очередь работу для
выполнения на ThreadPool
Start () запускает задачу
Wait () Ожидание завершения указанной
задачи
WaitAll () Ожидание завершения всех предоставленных объектов задачи
WaitAny () Ожидание завершения всех предоставленных объектов задачи
ContinueWith () Создайте цепочку задач, которые запускаются одна за другой
Статус Получить статус текущей задачи
IsCanceled Получить значение bool, чтобы определить, отменена ли задача
IsCompleted Получить значение bool, чтобы определить, завершена ли задача
IsFaults Получает, если Задача выполнена из-за необработанного исключения.
Factory Предоставьте фабричный метод для создания и настройки Задачи
Слайд 9Потоки
Task mytask = new Task(actionMethod);
actionMethod - это метод, который
имеет тип возврата void и не требует ввода параметра; другими
словами, в параметре task есть делегат «Действие» конструктор.
• Задача имеет в общей сложности 8 перегруженных конструкторов, но обычно мы работаем с первым
перегруженный конструктор с делегатом «Action» во входном параметре
Слайд 11Потоки
funcMethod - это метод, который имеет тип возврата типа TResult
и не принимает входных аргументов; другими словами, «Func » делегат
в параметре
конструктора Task
Слайд 13Потоки
Написать программу для линейного поиска числа в одномерном массиве заданной
длины с помощью 4 потоков каждый из которых осуществляет поиск
своей части массива. Количество потоков задается пользователем.