Упрощенные задачи

В этом документе описывается роль упрощенных задач в среде выполнения параллелизма. Упрощенная задача — это задача , которую вы планируете непосредственно из concurrency::Scheduler объекта или concurrency::ScheduleGroup объекта. Упрощенная задача похожа на функцию CreateThread API Windows. Поэтому упрощенные задачи полезны при адаптации существующего кода для использования функций планирования среды выполнения параллелизма. Среда выполнения параллелизма использует упрощенные задачи для планирования асинхронных агентов и отправки сообщений между асинхронными блоками сообщений.

Совет

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

Упрощенные задачи несут меньше затрат, чем асинхронные агенты и группы задач. Например, среда выполнения не сообщает о завершении упрощенной задачи. Кроме того, среда выполнения не перехватывает или обрабатывает исключения, создаваемые из упрощенной задачи. Дополнительные сведения об обработке исключений и упрощенных задачах см. в разделе "Обработка исключений".

Для большинства задач рекомендуется использовать более надежные функциональные возможности, такие как группы задач и параллельные алгоритмы, так как они позволяют более легко разбить сложные задачи на более простые. Дополнительные сведения о группах задач см. в разделе "Параллелизм задач". Дополнительные сведения о параллельных алгоритмах см. в разделе "Параллельные алгоритмы".

Чтобы создать упрощенную задачу, вызовите метод concurrency::ScheduleGroup::ScheduleTask, concurrency::CurrentScheduler::ScheduleTask или параллелизм::Scheduler::ScheduleTask. Чтобы дождаться завершения упрощенной задачи, дождитесь завершения родительского планировщика или используйте механизм синхронизации, например объект concurrency::event .

Пример

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

См. также

Планировщик заданий
Пошаговое руководство. Адаптация существующего кода для использования упрощенных задач