CurrentScheduler — KlasaCurrentScheduler Class

Reprezentuje abstrakcję bieżącego harmonogramu skojarzonego z kontekstem wywołującym.Represents an abstraction for the current scheduler associated with the calling context.

SkładniaSyntax

class CurrentScheduler;

Elementy członkowskieMembers

Metody publicznePublic Methods

NazwaName OpisDescription
UtwórzCreate Tworzy nowy harmonogram, którego zachowanie jest opisane przez _Policy parametr i dołącza go do kontekstu wywołującego.Creates a new scheduler whose behavior is described by the _Policy parameter and attaches it to the calling context. Nowo utworzony harmonogram stanie się bieżącym harmonogramem dla kontekstu wywołującego.The newly created scheduler will become the current scheduler for the calling context.
CreateScheduleGroup —CreateScheduleGroup Przeciążone.Overloaded. Tworzy nową grupę harmonogramu w ramach harmonogramu skojarzonego z kontekstem wywołującym.Creates a new schedule group within the scheduler associated with the calling context. Wersja, która przyjmuje parametr, _Placement powoduje, że zadania w nowo utworzonej grupie harmonogramu są wliczane do wykonania w lokalizacji określonej przez ten parametr.The version that takes the parameter _Placement causes tasks within the newly created schedule group to be biased towards executing at the location specified by that parameter.
OdłączDetach Odłącza bieżący harmonogram od kontekstu wywołującego i przywraca poprzednio dołączony harmonogram jako bieżący harmonogram, jeśli taki istnieje.Detaches the current scheduler from the calling context and restores the previously attached scheduler as the current scheduler, if one exists. Po powrocie tej metody kontekst wywołujący jest następnie zarządzany przez harmonogram, który został wcześniej dołączony do kontekstu przy użyciu CurrentScheduler::Create Scheduler::Attach metody lub.After this method returns, the calling context is then managed by the scheduler that was previously attached to the context using either the CurrentScheduler::Create or Scheduler::Attach method.
PobierzGet Zwraca wskaźnik do harmonogramu skojarzonego z kontekstem wywołującym, nazywany również bieżącym harmonogramem.Returns a pointer to the scheduler associated with the calling context, also referred to as the current scheduler.
GetNumberOfVirtualProcessors —GetNumberOfVirtualProcessors Zwraca bieżącą liczbę procesorów wirtualnych dla harmonogramu skojarzonego z kontekstem wywoływania.Returns the current number of virtual processors for the scheduler associated with the calling context.
GetPolicy —GetPolicy Zwraca kopię zasad, za pomocą której został utworzony bieżący harmonogram.Returns a copy of the policy that the current scheduler was created with.
#C1Id Zwraca unikatowy identyfikator dla bieżącego harmonogramu.Returns a unique identifier for the current scheduler.
IsAvailableLocation —IsAvailableLocation Określa, czy dana lokalizacja jest dostępna w bieżącym harmonogramie.Determines whether a given location is available on the current scheduler.
RegisterShutdownEvent —RegisterShutdownEvent Powoduje, że dojście zdarzenia systemu Windows przekazuje się w _ShutdownEvent parametrze, gdy harmonogram skojarzony z bieżącym kontekstem zostanie zamknięty i zniszczy sam siebie.Causes the Windows event handle passed in the _ShutdownEvent parameter to be signaled when the scheduler associated with the current context shuts down and destroys itself. W momencie zasygnalizowania zdarzenia wszystkie prace, które zostały zaplanowane do harmonogramu, zostały ukończone.At the time the event is signaled, all work that had been scheduled to the scheduler is complete. W tej metodzie można zarejestrować wiele zdarzeń zamknięcia.Multiple shutdown events can be registered through this method.
ScheduleTask —ScheduleTask Przeciążone.Overloaded. Planuje zadanie lekkiej wagi w ramach harmonogramu skojarzonego z kontekstem wywołującym.Schedules a light-weight task within the scheduler associated with the calling context. Uproszczone zadanie zostanie umieszczone w grupie harmonogramu określonej przez środowisko uruchomieniowe.The light-weight task will be placed in a schedule group determined by the runtime. Wersja, która przyjmuje parametr powoduje, że zadanie jest rozdzielone na _Placement wykonanie w określonej lokalizacji.The version that takes the parameter _Placement causes the task to be biased towards executing at the specified location.

UwagiRemarks

Jeśli nie ma harmonogramu (zobacz Scheduler) skojarzonego z kontekstem wywoływania, wiele metod w CurrentScheduler klasie spowoduje zamocowanie domyślnego harmonogramu procesu.If there is no scheduler (see Scheduler) associated with the calling context, many methods within the CurrentScheduler class will result in attachment of the process' default scheduler. Może to również oznaczać, że podczas takiego wywołania jest tworzony harmonogram domyślny procesu.This may also imply that the process' default scheduler is created during such a call.

Hierarchia dziedziczeniaInheritance Hierarchy

CurrentScheduler

WymaganiaRequirements

Nagłówek: ConcRT. hHeader: concrt.h

Przestrzeń nazw: współbieżnośćNamespace: concurrency

CreateCreate

Tworzy nowy harmonogram, którego zachowanie jest opisane przez _Policy parametr i dołącza go do kontekstu wywołującego.Creates a new scheduler whose behavior is described by the _Policy parameter and attaches it to the calling context. Nowo utworzony harmonogram stanie się bieżącym harmonogramem dla kontekstu wywołującego.The newly created scheduler will become the current scheduler for the calling context.

static void __cdecl Create(const SchedulerPolicy& _Policy);

ParametryParameters

_Policy_Policy
Zasady harmonogramu opisujące zachowanie nowo utworzonego harmonogramu.The scheduler policy that describes the behavior of the newly created scheduler.

UwagiRemarks

Dołączenie harmonogramu do kontekstu wywołującego niejawnie umieszcza liczbę odwołań w harmonogramie.The attachment of the scheduler to the calling context implicitly places a reference count on the scheduler.

Po utworzeniu harmonogramu przy użyciu Create metody należy wywołać metodę CurrentScheduler::D etach w pewnym momencie w przyszłości, aby można było wyłączyć harmonogram.After a scheduler is created with the Create method, you must call the CurrentScheduler::Detach method at some point in the future in order to allow the scheduler to shut down.

Jeśli ta metoda jest wywoływana z kontekstu, który jest już dołączony do innego harmonogramu, istniejący harmonogram zostanie zapamiętany jako poprzedni harmonogram, a nowo utworzony harmonogram będzie bieżącym harmonogramem.If this method is called from a context that is already attached to a different scheduler, the existing scheduler is remembered as the previous scheduler, and the newly created scheduler becomes the current scheduler. Po wywołaniu CurrentScheduler::Detach metody w późniejszym czasie, poprzedni harmonogram zostanie przywrócony jako bieżący harmonogram.When you call the CurrentScheduler::Detach method at a later point, the previous scheduler is restored as the current scheduler.

Ta metoda może zgłosić różne wyjątki, w tym scheduler_resource_allocation_error i invalid_scheduler_policy_value.This method can throw a variety of exceptions, including scheduler_resource_allocation_error and invalid_scheduler_policy_value.

CreateScheduleGroup —CreateScheduleGroup

Tworzy nową grupę harmonogramu w ramach harmonogramu skojarzonego z kontekstem wywołującym.Creates a new schedule group within the scheduler associated with the calling context. Wersja, która przyjmuje parametr, _Placement powoduje, że zadania w nowo utworzonej grupie harmonogramu są wliczane do wykonania w lokalizacji określonej przez ten parametr.The version that takes the parameter _Placement causes tasks within the newly created schedule group to be biased towards executing at the location specified by that parameter.

static ScheduleGroup* __cdecl CreateScheduleGroup();

static ScheduleGroup* __cdecl CreateScheduleGroup(location& _Placement);

ParametryParameters

_Placement_Placement
Odwołanie do lokalizacji, w której będą wykonywane zadania w grupie harmonogramu.A reference to a location where the tasks within the schedule group will be biased towards executing at.

Wartość zwracanaReturn Value

Wskaźnik do nowo utworzonej grupy harmonogramów.A pointer to the newly created schedule group. ScheduleGroupDla tego obiektu jest umieszczona początkowa liczba odwołań.This ScheduleGroup object has an initial reference count placed on it.

UwagiRemarks

Ta metoda spowoduje utworzenie i/lub dołączenie domyślnego harmonogramu procesu do kontekstu wywołującego, jeśli aktualnie nie istnieje żaden harmonogram skojarzony z kontekstem wywołującym.This method will result in the process' default scheduler being created and/or attached to the calling context if there is no scheduler currently associated with the calling context.

Należy wywołać metodę Release w grupie harmonogramu, gdy planujesz do niej prace.You must invoke the Release method on a schedule group when you are done scheduling work to it. Harmonogram będzie niszczył grupę harmonogramu, gdy cała praca w kolejce do niej została zakończona.The scheduler will destroy the schedule group when all work queued to it has completed.

Należy pamiętać, że jeśli ten harmonogram został jawnie utworzony, należy zwolnić wszystkie odwołania do grup zaplanowanych w ramach tego harmonogramu przed zwolnieniem odwołania do harmonogramu przez odłączenie bieżącego kontekstu od niego.Note that if you explicitly created this scheduler, you must release all references to schedule groups within it, before you release your reference on the scheduler, by detaching the current context from it.

EkranDetach

Odłącza bieżący harmonogram od kontekstu wywołującego i przywraca poprzednio dołączony harmonogram jako bieżący harmonogram, jeśli taki istnieje.Detaches the current scheduler from the calling context and restores the previously attached scheduler as the current scheduler, if one exists. Po powrocie tej metody kontekst wywołujący jest następnie zarządzany przez harmonogram, który został wcześniej dołączony do kontekstu przy użyciu CurrentScheduler::Create Scheduler::Attach metody lub.After this method returns, the calling context is then managed by the scheduler that was previously attached to the context using either the CurrentScheduler::Create or Scheduler::Attach method.

static void __cdecl Detach();

UwagiRemarks

DetachMetoda niejawnie usuwa liczbę odwołań z harmonogramu.The Detach method implicitly removes a reference count from the scheduler.

Jeśli nie ma żadnego harmonogramu dołączonego do kontekstu wywołującego, wywołanie tej metody spowoduje wyjątek scheduler_not_attached .If there is no scheduler attached to the calling context, calling this method will result in a scheduler_not_attached exception being thrown.

Wywołanie tej metody z kontekstu, który jest wewnętrzny i zarządzany przez harmonogram lub kontekst, który został dołączony przy użyciu metody innej niż Scheduler:: Attach lub CurrentScheduler:: Create , spowoduje zgłoszenie wyjątku improper_scheduler_detach .Calling this method from a context that is internal to and managed by a scheduler, or a context that was attached using a method other than the Scheduler::Attach or CurrentScheduler::Create methods, will result in an improper_scheduler_detach exception being thrown.

PobierzGet

Zwraca wskaźnik do harmonogramu skojarzonego z kontekstem wywołującym, nazywany również bieżącym harmonogramem.Returns a pointer to the scheduler associated with the calling context, also referred to as the current scheduler.

static Scheduler* __cdecl Get();

Wartość zwracanaReturn Value

Wskaźnik do harmonogramu skojarzony z kontekstem wywoływania (bieżący harmonogram).A pointer to the scheduler associated with the calling context (the current scheduler).

UwagiRemarks

Ta metoda spowoduje utworzenie i/lub dołączenie domyślnego harmonogramu procesu do kontekstu wywołującego, jeśli aktualnie nie istnieje żaden harmonogram skojarzony z kontekstem wywołującym.This method will result in the process' default scheduler being created and/or attached to the calling context if there is no scheduler currently associated with the calling context. Żadne dodatkowe odwołanie nie jest umieszczane w Scheduler obiekcie zwróconym przez tę metodę.No additional reference is placed on the Scheduler object returned by this method.

GetNumberOfVirtualProcessors —GetNumberOfVirtualProcessors

Zwraca bieżącą liczbę procesorów wirtualnych dla harmonogramu skojarzonego z kontekstem wywoływania.Returns the current number of virtual processors for the scheduler associated with the calling context.

static unsigned int __cdecl GetNumberOfVirtualProcessors();

Wartość zwracanaReturn Value

Jeśli harmonogram jest skojarzony z kontekstem wywołującym, bieżąca liczba procesorów wirtualnych dla tego harmonogramu; w przeciwnym razie wartość -1 .If a scheduler is associated with the calling context, the current number of virtual processors for that scheduler; otherwise, the value -1.

UwagiRemarks

Ta metoda nie będzie skutkować załącznikiem harmonogramu, jeśli kontekst wywołujący nie jest już skojarzony z harmonogramem.This method will not result in scheduler attachment if the calling context is not already associated with a scheduler.

Wartość zwracana z tej metody jest chwilową próbką liczby procesorów wirtualnych dla harmonogramu skojarzonego z kontekstem wywołującym.The return value from this method is an instantaneous sampling of the number of virtual processors for the scheduler associated with the calling context. Ta wartość może być nieaktualna w momencie zwrócenia.This value can be stale the moment it is returned.

GetPolicy —GetPolicy

Zwraca kopię zasad, za pomocą której został utworzony bieżący harmonogram.Returns a copy of the policy that the current scheduler was created with.

static SchedulerPolicy __cdecl GetPolicy();

Wartość zwracanaReturn Value

Kopia zasad, za pomocą których utworzono bieżący harmonogram.A copy of the policy that the current scheduler was created with.

UwagiRemarks

Ta metoda spowoduje utworzenie i/lub dołączenie domyślnego harmonogramu procesu do kontekstu wywołującego, jeśli aktualnie nie istnieje żaden harmonogram skojarzony z kontekstem wywołującym.This method will result in the process' default scheduler being created and/or attached to the calling context if there is no scheduler currently associated with the calling context.

#C1Id

Zwraca unikatowy identyfikator dla bieżącego harmonogramu.Returns a unique identifier for the current scheduler.

static unsigned int __cdecl Id();

Wartość zwracanaReturn Value

Jeśli harmonogram jest skojarzony z kontekstem wywołującym, unikatowym identyfikatorem tego harmonogramu; w przeciwnym razie wartość -1 .If a scheduler is associated with the calling context, a unique identifier for that scheduler; otherwise, the value -1.

UwagiRemarks

Ta metoda nie będzie skutkować załącznikiem harmonogramu, jeśli kontekst wywołujący nie jest już skojarzony z harmonogramem.This method will not result in scheduler attachment if the calling context is not already associated with a scheduler.

IsAvailableLocation —IsAvailableLocation

Określa, czy dana lokalizacja jest dostępna w bieżącym harmonogramie.Determines whether a given location is available on the current scheduler.

static bool __cdecl IsAvailableLocation(const location& _Placement);

ParametryParameters

_Placement_Placement
Odwołanie do lokalizacji, w której ma zostać wyszukiwany bieżący harmonogram.A reference to the location to query the current scheduler about.

Wartość zwracanaReturn Value

Wskazanie, czy lokalizacja określona przez _Placement argument jest dostępna w bieżącym harmonogramie.An indication of whether or not the location specified by the _Placement argument is available on the current scheduler.

UwagiRemarks

Ta metoda nie będzie skutkować załącznikiem harmonogramu, jeśli kontekst wywołujący nie jest już skojarzony z harmonogramem.This method will not result in scheduler attachment if the calling context is not already associated with a scheduler.

Zwróć uwagę, że wartość zwracana to chwilowe próbkowanie, czy dana lokalizacja jest dostępna.Note that the return value is an instantaneous sampling of whether the given location is available. W obecności wielu harmonogramów dynamiczne zarządzanie zasobami może dodawać lub odrzucać zasoby od harmonogramów w dowolnym momencie.In the presence of multiple schedulers, dynamic resource management can add or take away resources from schedulers at any point. W takim przypadku dana lokalizacja może zmienić dostępność.Should this happen, the given location can change availability.

RegisterShutdownEvent —RegisterShutdownEvent

Powoduje, że dojście zdarzenia systemu Windows przekazuje się w _ShutdownEvent parametrze, gdy harmonogram skojarzony z bieżącym kontekstem zostanie zamknięty i zniszczy sam siebie.Causes the Windows event handle passed in the _ShutdownEvent parameter to be signaled when the scheduler associated with the current context shuts down and destroys itself. W momencie zasygnalizowania zdarzenia wszystkie prace, które zostały zaplanowane do harmonogramu, zostały ukończone.At the time the event is signaled, all work that had been scheduled to the scheduler is complete. W tej metodzie można zarejestrować wiele zdarzeń zamknięcia.Multiple shutdown events can be registered through this method.

static void __cdecl RegisterShutdownEvent(HANDLE _ShutdownEvent);

ParametryParameters

_ShutdownEvent_ShutdownEvent
Dojście do obiektu zdarzenia systemu Windows, które zostanie zasygnalizowane przez środowisko uruchomieniowe, gdy harmonogram skojarzony z bieżącym kontekstem zostanie zamknięty i zniszczy siebie.A handle to a Windows event object which will be signaled by the runtime when the scheduler associated with the current context shuts down and destroys itself.

UwagiRemarks

Jeśli nie ma żadnego harmonogramu dołączonego do kontekstu wywołującego, wywołanie tej metody spowoduje wyjątek scheduler_not_attached .If there is no scheduler attached to the calling context, calling this method will result in a scheduler_not_attached exception being thrown.

ScheduleTask —ScheduleTask

Planuje zadanie lekkiej wagi w ramach harmonogramu skojarzonego z kontekstem wywołującym.Schedules a light-weight task within the scheduler associated with the calling context. Uproszczone zadanie zostanie umieszczone w grupie harmonogramu określonej przez środowisko uruchomieniowe.The light-weight task will be placed in a schedule group determined by the runtime. Wersja, która przyjmuje parametr powoduje, że zadanie jest rozdzielone na _Placement wykonanie w określonej lokalizacji.The version that takes the parameter _Placement causes the task to be biased towards executing at the specified location.

static void __cdecl ScheduleTask(
    TaskProc _Proc,
    _Inout_opt_ void* _Data);

static void __cdecl ScheduleTask(
    TaskProc _Proc,
    _Inout_opt_ void* _Data,
    location& _Placement);

ParametryParameters

_Proc_Proc
Wskaźnik do funkcji, która ma zostać wykonana, aby wykonać treść zadania o lekkim średnim poziomie.A pointer to the function to execute to perform the body of the light-weight task.

_Data_Data
Wskaźnik void do danych, które zostaną przesłane jako parametr do treści zadania.A void pointer to the data that will be passed as a parameter to the body of the task.

_Placement_Placement
Odwołanie do lokalizacji, w której zostanie obciążone zadanie lekkiej wagi.A reference to a location where the light-weight task will be biased towards executing at.

UwagiRemarks

Ta metoda spowoduje utworzenie i/lub dołączenie domyślnego harmonogramu procesu do kontekstu wywołującego, jeśli aktualnie nie istnieje żaden harmonogram skojarzony z kontekstem wywołującym.This method will result in the process' default scheduler being created and/or attached to the calling context if there is no scheduler currently associated with the calling context.

Zobacz teżSee also

Przestrzeń nazw współbieżnościconcurrency Namespace
Scheduler — KlasaScheduler Class
PolicyElementKey —PolicyElementKey
Harmonogram zadańTask Scheduler