Export (0) Print
Expand All

IScheduler Structure

An interface to an abstraction of a work scheduler. The Concurrency Runtime's Resource Manager uses this interface to communicate with work schedulers.

struct IScheduler;

Public Methods

Name

Description

IScheduler::AddVirtualProcessors Method

Provides a scheduler with a set of virtual processor roots for its use. Each IVirtualProcessorRoot interface represents the right to execute a single thread that can perform work on behalf of the scheduler.

IScheduler::GetId Method

Returns a unique identifier for the scheduler.

IScheduler::GetPolicy Method

Returns a copy of the scheduler's policy. For more information on scheduler policies, see SchedulerPolicy.

IScheduler::NotifyResourcesExternallyBusy Method

Notifies this scheduler that the hardware threads represented by the set of virtual processor roots in the array ppVirtualProcessorRoots are now being used by other schedulers.

IScheduler::NotifyResourcesExternallyIdle Method

Notifies this scheduler that the hardware threads represented by the set of virtual processor roots in the array ppVirtualProcessorRoots are not being used by other schedulers.

IScheduler::RemoveVirtualProcessors Method

Initiates the removal of virtual processor roots that were previously allocated to this scheduler.

IScheduler::Statistics Method

Provides information related to task arrival and completion rates, and change in queue length for a scheduler.

If you are implementing a custom scheduler that communicates with the Resource Manager, you should provide an implementation of the IScheduler interface. This interface is one end of a two-way channel of communication between a scheduler and the Resource Manager. The other end is represented by the IResourceManager and ISchedulerProxy interfaces which are implemented by the Resource Manager.

Header: concrtrm.h

Namespace: Concurrency

Community Additions

ADD
Show:
© 2014 Microsoft