Поделиться через


Структура IUMSScheduler

Интерфейс для абстракции планировщика заданий, который хочет, чтобы диспетчер ресурсов среды выполнения Concurrency Runtime предоставил ему пользовательские потоки, подлежащие планированию (UMS). Диспетчер ресурсов использует этот интерфейс для взаимодействия с планировщиками потоков UMS. Интерфейс IUMSScheduler наследует от интерфейса IScheduler .

Синтаксис

struct IUMSScheduler : public IScheduler;

Участники

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

Имя Описание
IUMSScheduler::SetCompletionList Назначает интерфейс IUMSCompletionList планировщику потоков UMS.

Замечания

Если вы реализуете настраиваемый планировщик, взаимодействующий с Resource Manager, и вы хотите, чтобы потоки UMS были переданы планировщику вместо обычных потоков Win32, необходимо предоставить реализацию IUMSScheduler интерфейса. Кроме того, необходимо задать значение политики для ключа политики планировщика SchedulerKind на UmsThreadDefault. Если политика задает поток UMS, интерфейс, IScheduler передаваемый в качестве параметра методу IResourceManager::RegisterScheduler , должен быть интерфейсом IUMSScheduler .

Resource Manager может передавать потоки UMS только в операционных системах, имеющих функцию UMS. 64-разрядные операционные системы с Windows 7 и более поздних версий поддерживают потоки UMS. Если вы создаете политику планировщика с ключом SchedulerKind, заданным значением UmsThreadDefault, и базовая платформа не поддерживает UMS, значение ключа SchedulerKind в этой политике будет изменено на значение ThreadScheduler. Всегда считывайте это значение параметра политики, прежде чем ожидать получения потоков UMS.

Интерфейс IUMSScheduler — это один из двухстороннего канала обмена данными между планировщиком и Диспетчером ресурсов. Другой конец представлен интерфейсами IResourceManager и ISchedulerProxy, которые реализуются Менеджером ресурсов.

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

IScheduler

IUMSScheduler

Требования

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

Пространство имен: конкурентность

Метод IUMSScheduler::SetCompletionList

IUMSCompletionList Назначает интерфейс планировщику потоков UMS.

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

Параметры

pCompletionList
Интерфейс списка завершения для планировщика. Существует один список для планировщика.

Замечания

Диспетчер ресурсов вызовет этот метод на планировщике, указывающем, что он нуждается в UMS-потоках, после того, как планировщик запросил начальное выделение ресурсов. Планировщик может использовать IUMSCompletionList интерфейс, чтобы определить, когда прокси-серверы потоков UMS разблокировались. Это допустимо только для доступа к этому интерфейсу из прокси-сервера потока, работающего в корневом каталоге виртуального процессора, назначенном планировщику UMS.

См. также

Пространство имен параллелизм
PolicyElementKey
Структура IScheduler
Структура IUMSCompletionList
Структура IResourceManager