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