Главная / Программирование /
Параллельное программирование с помощью языка C# / Тест 9
Параллельное программирование с помощью языка C# - тест 9
Упражнение 1:
Номер 1
Выберете правильные утверждения
Ответ:
 (1) каждая задача выполняется в одном рабочем потоке 
 (2) несколько задач могут выполняться в одном рабочем потоке 
 (3) задача может выполняться в нескольких рабочих потоках 
 (4) ни одно из указанных утверждений не верно 
Номер 2
Выберете правильные утверждения
Ответ:
 (1) создание задачи приводит к созданию нового потока 
 (2) запуск задачи с помощью метода StartNew
приводит к созданию потока 
 (3) запуск задачи с помощью метода Start
приводит к созданию потока 
 (4) нет правильных утверждений 
Номер 3
Выберете правильные утверждения
Ответ:
 (1) метод Task.Factoy.StartNew
создает новый поток для задачи 
 (2) метод Task.Factory.StartNew
запускает задачу в рабочем потоке и дожидается завершения работы 
 (3) метод Start
запускает задачу в текущем потоке 
 (4) метод Start
добавляет задачу в очередь пула потоков 
Упражнение 2:
Номер 1
В каких случаях задача завершается со статусом Faulted
Ответ:
 (1) во вложенных задачах возникли исключения 
 (2) задача была отменена 
 (3) в дочерних задачах возникли исключения 
 (4) в задаче возникло исключение 
Номер 2
Родительская задача ParentTask
завершается без исключений, во вложенной (не дочерней) задаче innerTask
возникает исключение. Статусы задач:
Ответ:
 (1) ParentTask.Status:
RanToCompletion
, innerTask.Status:
Faulted
 
 (2) ParentTask.Status:
Faulted
, innerTask.Status:
Faulted
 
 (3) ParentTask.Status:
Canceled
, innerTask.Status:
Faulted
 
 (4) ParentTask.Status:
Canceled
, innerTask.Status:
Canceled
 
Номер 3
При возникновении необработанного исключения в задаче:
Ответ:
 (1) статус задачи Faulted
 
 (2) статус задачи Canceled
 
 (3) статус задачи не определен 
 (4) нет правильных ответов 
Упражнение 3:
Номер 1
Какой фрагмент кода гарантирует запуск метода f1
до запуска метода f2.
Ответ:
 (1)
Task t1 = new Task(f1);
t1.Start();
f2();
 
 (2)
Task t1 = Task.Factory.StartNew(f1);
f2();
 
 (3)
Task t1 = new Task(f1);
t1.Start();
Thread.Sleep(500);
f2();
 
 (4) ни один из предложенных вариантов 
Номер 2
Обращение к свойству Result
задачи, которая еще выполняется
Ответ:
 (1) блокирует поток до завершения задачи 
 (2) генерирует исключение 
 (3) возвращает null
 
 (4) ни один из предложенных вариантов 
Номер 3
Объявление Task
t2
= t1.ContinueWith(..)
гарантирует
Ответ:
 (1) запуск задачи t2
только после завершения задачи t1
 
 (2) запуск задачи t2
до завершения задачи t1
 
 (3) запуск задачи t2
при определенном статусе завершения задачи t1
 
 (4) нет правильного ответа 
Упражнение 4:
Номер 1
Задачи-продолжения позволяют:
Ответ:
 (1) реализовать обработчик отмены задач 
 (2) запускать задачу при определенном статусе завершения предшествующей задачи 
 (3) запускать задачу при определенном статусе завершения предшествующей задачи 
 (4) нет правильных вариантов 
Номер 2
Задачи-продолжения запускаются после завершения задачи предшественника
Ответ:
 (1) вне зависимости от исхода задачи 
 (2) если не было отмены задачи предшественника 
 (3) если не было исключения в предшествующей задаче 
 (4) в зависимости от статуса завершения предшествующей задачи и параметров задачи-продолжения 
Номер 3
Для ожидания завершения задачи типа Task<int>
можно использовать
Ответ:
 (1) обращение к свойству Result
 
 (2) вызов метода Wait
 
 (3) вызов статического метода Task.WaitAll
с указанием задачи в качестве параметра 
 (4) вызов метода Join
для потока, в котором выполняется задача 
Упражнение 5:
Номер 1
Для отмены задачи необходимо
Ответ:
 (1) вызвать метод Cancel
для объекта типа Task
 
 (2) вызвать метод Cancel
для объекта типа CancellationTokenSource
 
 (3) вызвать метод Cancel
для объекта типа CancellationToken
 
 (4) вызвать метод Abort
для объекта типа Task
 
Номер 2
Для обработки исключений, возникающих в задаче, блок try
обрамляет:
Ответ:
 (1) вызов метода ожидания задачи t.Wait()
 
 (2) вызов метода запуска задачи t.Start()
 
 (3) объявление задачи Task
t
= new
Task(..);
 
 (4) нет правильных вариантов 
Номер 3
Выберете правильные утверждения
Ответ:
 (1) родительская задача всегда дожидается завершения вложенных задач 
 (2) родительская задача дожидается только вложенных задач, объявленных с параметром AttachedToParent
 
 (3) родительская задача дожидается только дочерних вложенных задач 
 (4) нет правильных утверждений 
Упражнение 6:
Номер 1
Статус задачи WaitingForActivation
соответствует ситуации:
Ответ:
 (1) задача добавлена в очередь пула потоков и готова к выполнению 
 (2) задача объявлена, но было вызова метода Start
 
 (3) задача дожидается завершения вложенных задач 
 (4) задача дожидается завершения предшествующих задач 
Номер 2
Какие методы типа Task и объекта типа Task
предполагают блокировку текущего потока до завершения задачи
Ответ:
 (1) t.Wait
 
 (2) Task.WaitAll
 
 (3) t.ContinueWith
 
 (4) Task.Factory.StartNew
 
Номер 3
Метод Flatten
применяется для
Ответ:
 (1) преобразования типа AggregateException
в тип Exception
 
 (2) назначения обработчиков конкретных исключений 
 (3) получения списка исключений, возникнувших при исполнении задач 
 (4) нет верных утверждений