Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом документе описывается роль легковесных задач в Concurrency Runtime. Легкая задача — это задача, которую вы планируете непосредственно из объекта concurrency::Scheduler или concurrency::ScheduleGroup. Легковесная задача напоминает функцию, которую вы предоставляете функции Windows API CreateThread. Поэтому легковесные задачи полезны при адаптации существующего кода для использования функций планирования Среды выполнения Concurrency. Среда выполнения Concurrency Runtime использует легковесные задачи для планирования асинхронных агентов и отправки сообщений между асинхронными блоками сообщений.
Совет
Среда выполнения с параллелизмом предоставляет планировщик по умолчанию, и таким образом не требуется создавать планировщик в приложении. Так как планировщик задач помогает точно настроить производительность приложений, рекомендуется начать с библиотеки параллельных шаблонов (PPL) или библиотеки асинхронных агентов, если вы не знакомы со средой выполнения параллелизма.
Упрощенные задачи несут меньше затрат, чем асинхронные агенты и группы задач. Например, среда выполнения не сообщает о завершении упрощенной задачи. Кроме того, среда выполнения не перехватывает или обрабатывает исключения, создаваемые из упрощенной задачи. Дополнительные сведения об обработке исключений и упрощенных задачах см. в разделе "Обработка исключений".
Для большинства задач рекомендуется использовать более надежные функциональные возможности, такие как группы задач и параллельные алгоритмы, так как они позволяют более легко разбить сложные задачи на более простые. Дополнительные сведения о группах задач см. в разделе "Параллелизм задач". Дополнительные сведения о параллельных алгоритмах см. в разделе "Параллельные алгоритмы".
Чтобы создать упрощенную задачу, вызовите параллелизм::ScheduleGroup::ScheduleTask, параллелизм::CurrentScheduler::ScheduleTask или параллелизм::Scheduler::ScheduleTask. Чтобы дождаться завершения лёгкой задачи, дождитесь завершения работы родительского планировщика или используйте механизм синхронизации, такой как объект concurrency::event.
Пример
Пример, демонстрирующий адаптацию существующего кода для использования упрощенной задачи, см. в пошаговом руководстве. Адаптация существующего кода для использования упрощенных задач.
См. также
Планировщик заданий
Пошаговое руководство. Адаптация существующего кода для использования упрощенных задач