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

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

Совет

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

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

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

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

Пример

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

См. также

Основные понятия

Планировщик задач (среда выполнения с параллелизмом)

Другие ресурсы

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

Журнал изменений

Дата

Журнал

Причина

Июль 2010

Содержимое реорганизовано.

Улучшение информации.