Windows.System.Threading Пространство имен
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Позволяет приложению использовать пул потоков для выполнения рабочих элементов.
Пул потоков предоставляет пул рабочих потоков, которые приложение может использовать для рабочих элементов, которые могут выполняться параллельно. Использовать пул потоков проще и эффективнее, чем создавать отдельные потоки, так как пул потоков управляет временем существования потоков и планирует рабочие элементы, когда потоки становятся доступными.
Рабочие элементы выполняются асинхронно и могут выполняться в любом порядке, поэтому лучше использовать пул потоков для рабочих элементов, которые не занимают много времени и не зависят от выходных данных друг друга. Рабочий элемент создается путем вызова метода RunAsync . Рабочий элемент добавляется в очередь пула потоков, где он остается до тех пор, пока поток не станет доступным. Когда поток становится доступным, пул потоков вызывает связанный с рабочим элементом делегат WorkItemHandler , и рабочий элемент выполняется.
Пул потоков планирует рабочий элемент, как только поток становится доступным, поэтому элемент может запуститься немедленно. Если вы хотите, чтобы рабочий элемент выполнялся через определенное время, используйте таймер. Вы создаете таймер и указываете его значение времени ожидания путем вызова метода CreateTimer . Таймер начинает отсчитывать сразу после создания, поэтому вам не нужно его запускать. По истечении срока действия таймера пул потоков вызывает делегат TimerElapsedHandler таймера.
Если вы хотите запускать рабочий элемент несколько раз с регулярным интервалом, используйте метод CreatePeriodicTimer для создания периодического таймера. Периодический таймер сбрасывается каждый раз, когда истекает срок его действия, и остается активным до тех пор, пока вы не отмените его.
Если вы хотите, чтобы рабочий элемент ждал передачи сигнала о событии или семафоре или вы хотите создать предварительно назначенный рабочий элемент, см . статью Windows.System.Threading.Core.
Пример кода, демонстрирующий использование пула потоков, см. в разделе Пример пула потоков.
Примечание
API ThreadPool поддерживается как для классических приложений, так и для приложений UWP.
Классы
ThreadPool |
Предоставляет доступ к пулу потоков. Подробные инструкции по использованию пула потоков см. в статье Потоки и асинхронное программирование :
Примечание API ThreadPool поддерживается как для классических приложений, так и для приложений UWP. |
ThreadPoolTimer |
Представляет таймер, созданный с помощью CreateTimer или CreatePeriodicTimer. Примечание API ThreadPool поддерживается как для классических приложений, так и для приложений UWP. |
Перечисления
WorkItemOptions |
Указывает, как должны выполняться рабочие элементы. |
WorkItemPriority |
Задает приоритет рабочего элемента относительно других рабочих элементов в пуле потоков. |
Делегаты
TimerDestroyedHandler |
Представляет метод, который вызывается при завершении таймера, созданного с помощью CreateTimer или CreatePeriodicTimer . |
TimerElapsedHandler |
Представляет метод, который вызывается при истечении срока действия таймера, созданного с помощью CreateTimer или CreatePeriodicTimer . |
WorkItemHandler |
Представляет метод, который вызывается при выполнении рабочего элемента. |