Рекомендации по использованию пула потоков
Этот раздел содержит рекомендации по работе с пулом потоков.
Следует:
Использовать пул потоков для выполнения параллельных операций в приложении.
Использовать рабочие элементы для выполнения расширенных задач без блокировки потока пользовательского интерфейса.
Создавать кратковременные и независимые рабочие элементы. Рабочие элементы выполняются асинхронно и могут отправляться в пул из очереди в любом порядке.
Обновления обработки в поток пользовательского интерфейса с помощью Windows.UI.Core.CoreDispatcher.
Используйте ThreadPoolTimer.CreateTimer вместо функции Sleep.
Использовать пул потоков вместо того, чтобы создавать собственную систему управления потоками. Пул потоков работает на уровне ОС с расширенными функциями и оптимизирован для динамического масштабирования согласно ресурсам устройства и событиям в рамках процесса и в системе.
В случае языка C++ убедитесь, что делегаты рабочих элементов используют гибкую потоковую модель (делегаты C++ являются гибкими по умолчанию).
Использовать предварительно выделенные рабочие элементы, когда нельзя допустить сбой выделения ресурса во время использования.
Не следует:
Создавать периодические таймеры, используя значение period<1 мс (включая 0). Иначе рабочий элемент будет действовать как однократный таймер.
Отправлять периодические рабочие элементы, выполнение которых занимает больше времени, чем указано в параметре period.
Отправлять обновления пользовательского интерфейса (кроме всплывающих и обычных уведомлений) из рабочего элемента, отправленного из фоновой задаче. Вместо этого нужно использовать обработчики хода выполнения и завершения фоновой задачи — например, IBackgroundTaskInstance.Progress.
При использовании обработчиков рабочих элементов, использующих ключевое слово async, помните о том, что рабочий элемент пула потоков может быть настроен на состояние выполнения до выполнения всего кода в обработчике. Код после ключевого слова await в обработчике может выполняться после настройки рабочего элемента на состояние завершения.
Выполнять предварительно выделенный рабочий элемент более одного раза без повторной инициализации. Создание периодического рабочего элемента
Связанные темы
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по