Windows.System.Threading.Core Пространство имен

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

Примечание

API ThreadPool поддерживается как для классических приложений, так и для приложений UWP.

PreallocatedWorkItemПри создании рабочих элементов с помощью ThreadPool. RunAsync— рабочий элемент создается и отправляется в виде одной операции. Это приемлемо для большинства сценариев, но иногда необходимо заранее выделить ресурсы для рабочего элемента.

Класс PreallocatedWorkItem заранее создает рабочий элемент, помещая рабочий элемент "в режим ожидания", чтобы при необходимости его можно было отправить в пул потоков. Это полезно в тех случаях, когда ресурсы, доступные вашему приложению, полностью выделяются до того, как потребуется рабочий элемент, например, вызов процедуры освобождения, которая использует рабочий элемент. Если рабочий элемент уже выделен, можно по-прежнему вызывать процедуру освобождения ресурсов, а preallocatedWorkItem по-прежнему можно отправить в пул потоков, даже если все ресурсы уже используются. Иногда необходимо помещать рабочие элементы в очередь в ответ на именованные события или семафоры, созданные com-объектами Win32. Метод среда выполнения Windows можно запустить в ответ на именованное событие или семафор с помощью объекта SignalNotifier. Это позволяет написать среда выполнения Windows код, который реагирует на события и сигналы, отправляемые с помощью Win32 и COM для , при условии, что событие или семафор имеет имя. Например, SignalNotifier можно использовать для работы с кодом Win32, который переносится в приложение UWP. ISignalableNotifierИногда невозможно узнать имя события или семафора, но ваше приложение по-прежнему должно реагировать на него; Например, устаревший код и некоторые известные события и семафоры по-прежнему используют дескриптор ожидания вместо имен. ISignalableNotifier позволяет создавать объекты ISignalNotifier , зарегистрированные с помощью дескрипторов ожидания.

Примечание

Предварительно подготовленные рабочие элементы необходимы только для приложений, которые могут использовать все доступные ресурсы, или для создания рабочих элементов для процедур освобождения ресурсов. Сигнальные уведомления применимы только к определенным приложениям, которые используют Win32 и COM для . Если вам не нужно использовать предварительное размещение или сигнализацию в приложении, создайте рабочие элементы с помощью Windows.System.Threading.

Классы

PreallocatedWorkItem

Предварительно выбранный рабочий элемент создается перед его отправкой в пул потоков, гарантируя, что рабочий элемент создан таким образом, чтобы при необходимости его можно было отправить в пул потоков. Например, объект PreallocatedWorkItem можно создать в случае, если он необходим для процедуры освобождения ресурсов, так как подпрограмма освобождения ресурсов может вызываться в ситуациях, когда для создания рабочего элемента будет недостаточно ресурсов.

Примечание

API ThreadPool поддерживается как для классических приложений, так и для приложений UWP.

SignalNotifier

Запускает метод при сигнале события или семафора. Также можно указать значение времени ожидания, что приводит к запуску делегата по истечении интервала времени, если именованное событие не происходит (или если семафор не достигает состояния сигнала).

Примечание

API ThreadPool поддерживается как для классических приложений, так и для приложений UWP.

Делегаты

SignalHandler

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