Структура IUMSSchedulerIUMSScheduler Structure

Интерфейс абстракции планировщика, которому требуется, чтобы диспетчер ресурсов среды выполнения с параллелизмом передал ему потоки планировщика в пользовательском режиме (UMS).An interface to an abstraction of a work scheduler that wants the Concurrency Runtime's Resource Manager to hand it user-mode schedulable (UMS) threads. Диспетчер ресурсов среды выполнения с параллелизмом использует этот интерфейс для взаимодействия с планировщиками потоков UMS.The Resource Manager uses this interface to communicate with UMS thread schedulers. Интерфейс IUMSScheduler наследует от интерфейса IScheduler .The IUMSScheduler interface inherits from the IScheduler interface.

СинтаксисSyntax

struct IUMSScheduler : public IScheduler;

ЧленыMembers

Открытые методыPublic Methods

nameName ОписаниеDescription
Иумссчедулер:: СеткомплетионлистIUMSScheduler::SetCompletionList Назначает IUMSCompletionList интерфейс планировщику потоков UMS.Assigns an IUMSCompletionList interface to a UMS thread scheduler.

КомментарииRemarks

При реализации пользовательского планировщика, который взаимодействует с диспетчер ресурсов и требуется передать потоки UMS планировщику вместо обычных потоков Win32, необходимо предоставить реализацию IUMSScheduler интерфейса.If you are implementing a custom scheduler that communicates with the Resource Manager, and you want UMS threads to be handed to your scheduler instead of ordinary Win32 threads, you should provide an implementation of the IUMSScheduler interface. Кроме того, необходимо задать для ключа политики планировщика значение SchedulerKind UmsThreadDefault .In addition, you should set the policy value for the scheduler policy key SchedulerKind to be UmsThreadDefault. Если политика указывает UMS-поток, IScheduler интерфейс, передаваемый в качестве параметра в метод метод IResourceManager:: регистерсчедулер , должен быть IUMSScheduler интерфейсом.If the policy specifies UMS thread, the IScheduler interface that is passed as a parameter to the IResourceManager::RegisterScheduler method must be an IUMSScheduler interface.

Диспетчер ресурсов может передать вам UMS-потоки только в операционных системах, имеющих функцию UMS.The Resource Manager is able to hand you UMS threads only on operating systems that have the UMS feature. 64-разрядные операционные системы с версиями Windows 7 и более поздней версии поддерживают UMS-потоки.64-bit operating systems with version Windows 7 and higher support UMS threads. Если вы создаете политику планировщика с SchedulerKind ключом, для которой задано значение, UmsThreadDefault а базовая платформа не поддерживает UMS, значение SchedulerKind ключа в этой политике будет изменено на значение ThreadScheduler .If you create a scheduler policy with the SchedulerKind key set to the value UmsThreadDefault and the underlying platform does not support UMS, the value of the SchedulerKind key on that policy will be changed to the value ThreadScheduler. Необходимо всегда считывать это значение политики, прежде чем ожидать получения потоков UMS.You should always read back this policy value before expecting to receive UMS threads.

IUMSSchedulerИнтерфейс — это один конец двустороннего канала связи между планировщиком и диспетчер ресурсов.The IUMSScheduler interface is one end of a two-way channel of communication between a scheduler and the Resource Manager. Другой конец представлен IResourceManager ISchedulerProxy интерфейсами и, которые реализуются диспетчер ресурсов.The other end is represented by the IResourceManager and ISchedulerProxy interfaces, which are implemented by the Resource Manager.

Иерархия наследованияInheritance Hierarchy

ISchedulerIScheduler

IUMSScheduler

ТребованияRequirements

Заголовок: concrtrm. hHeader: concrtrm.h

Пространство имен: параллелизмNamespace: concurrency

Метод Иумссчедулер:: СеткомплетионлистIUMSScheduler::SetCompletionList Method

Назначает IUMSCompletionList интерфейс планировщику потоков UMS.Assigns an IUMSCompletionList interface to a UMS thread scheduler.

virtual void SetCompletionList(_Inout_ IUMSCompletionList* pCompletionList) = 0;

ПараметрыParameters

пкомплетионлистpCompletionList
Интерфейс списка завершения для планировщика.The completion list interface for the scheduler. Существует один список для каждого планировщика.There is a single list per scheduler.

КомментарииRemarks

Диспетчер ресурсов вызовет этот метод для планировщика, который указывает, что требуется UMS-потоки, после того как планировщик запрашивает начальное выделение ресурсов.The Resource Manager will invoke this method on a scheduler that specifies it wants UMS threads, after the scheduler has requested an initial allocation of resources. Планировщик может использовать IUMSCompletionList интерфейс, чтобы определить, когда были разблокированы прокси-серверы потоков UMS.The scheduler can use the IUMSCompletionList interface to determine when UMS thread proxies have unblocked. Доступ к этому интерфейсу можно получить только из прокси-сервера потока, который работает на корневом виртуальном процессоре, назначенном планировщику UMS.It is only valid to access this interface from a thread proxy running on a virtual processor root assigned to the UMS scheduler.

См. также разделSee also

Пространство имен Concurrencyconcurrency Namespace
полициелементкэйPolicyElementKey
Структура ISchedulerIScheduler Structure
Структура IUMSCompletionListIUMSCompletionList Structure
Структура IResourceManagerIResourceManager Structure