CurrentScheduler — Klasa
Reprezentuje abstrakcję dla bieżącego harmonogramu skojarzonego z kontekstem wywołującym.
Składnia
class CurrentScheduler;
Elementy członkowskie
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
Utworzenie | Tworzy nowy harmonogram, którego zachowanie zostało opisane przez _Policy parametr i dołącza go do kontekstu wywołującego. Nowo utworzony harmonogram stanie się bieżącym harmonogramem dla kontekstu wywołującego. |
CreateScheduleGroup | Przeciążone. Tworzy nową grupę harmonogramu w harmonogramie skojarzonym z kontekstem wywołującym. Wersja, która przyjmuje parametr _Placement powoduje, że zadania w nowo utworzonej grupie harmonogramu są stronniczo wykonywane w lokalizacji określonej przez ten parametr. |
Detach | Odłącza bieżący harmonogram od kontekstu wywołującego i przywraca wcześniej dołączony harmonogram jako bieżący harmonogram, jeśli istnieje. 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 metody lub Scheduler::Attach . |
Pobierz | Zwraca wskaźnik do harmonogramu skojarzonego z kontekstem wywołującym, nazywany również bieżącym harmonogramem. |
GetNumberOfVirtualProcessors | Zwraca bieżącą liczbę procesorów wirtualnych dla harmonogramu skojarzonego z kontekstem wywołującym. |
GetPolicy | Zwraca kopię zasad, za pomocą której został utworzony bieżący harmonogram. |
Id | Zwraca unikatowy identyfikator bieżącego harmonogramu. |
IsAvailableLocation | Określa, czy dana lokalizacja jest dostępna w bieżącym harmonogramie. |
RegisterShutdownEvent | Powoduje, że dojście zdarzeń systemu Windows przekazane w parametrze _ShutdownEvent ma być zasygnalizowane, gdy harmonogram skojarzony z bieżącym kontekstem zostanie zamknięty i zostanie zniszczony. W momencie zasygnaliowania zdarzenia wszystkie prace zaplanowane do harmonogramu są ukończone. Za pomocą tej metody można zarejestrować wiele zdarzeń zamknięcia. |
ScheduleTask | Przeciążone. Planuje lekkie zadanie w harmonogramie skojarzonym z kontekstem wywołującym. Zadanie o lekkiej wadze zostanie umieszczone w grupie harmonogramu określonej przez środowisko uruchomieniowe. Wersja, która przyjmuje parametr _Placement powoduje, że zadanie jest odchylone w kierunku wykonywania w określonej lokalizacji. |
Uwagi
Jeśli nie ma harmonogramu (zobacz Harmonogram) skojarzonego z kontekstem wywołującym, wiele metod w CurrentScheduler
klasie spowoduje załącznik domyślnego harmonogramu procesu. Może to również oznaczać, że domyślny harmonogram procesu jest tworzony podczas takiego wywołania.
Hierarchia dziedziczenia
CurrentScheduler
Wymagania
Nagłówek: concrt.h
Przestrzeń nazw: współbieżność
Utworzenie
Tworzy nowy harmonogram, którego zachowanie zostało opisane przez _Policy
parametr i dołącza go do kontekstu wywołującego. Nowo utworzony harmonogram stanie się bieżącym harmonogramem dla kontekstu wywołującego.
static void __cdecl Create(const SchedulerPolicy& _Policy);
Parametry
_Polityka
Zasady harmonogramu, które opisują zachowanie nowo utworzonego harmonogramu.
Uwagi
Załącznik harmonogramu do kontekstu wywołującego niejawnie umieszcza liczbę odwołań w harmonogramie.
Po utworzeniu Create
harmonogramu za pomocą metody należy wywołać metodę CurrentScheduler::D etach w pewnym momencie w przyszłości, aby umożliwić zamykanie harmonogramu.
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 staje się bieżącym harmonogramem. Po wywołaniu CurrentScheduler::Detach
metody w późniejszym momencie poprzedni harmonogram zostanie przywrócony jako bieżący harmonogram.
Ta metoda może zgłaszać różne wyjątki, w tym scheduler_resource_allocation_error i invalid_scheduler_policy_value.
CreateScheduleGroup
Tworzy nową grupę harmonogramu w harmonogramie skojarzonym z kontekstem wywołującym. Wersja, która przyjmuje parametr _Placement
powoduje, że zadania w nowo utworzonej grupie harmonogramu są stronniczo wykonywane w lokalizacji określonej przez ten parametr.
static ScheduleGroup* __cdecl CreateScheduleGroup();
static ScheduleGroup* __cdecl CreateScheduleGroup(location& _Placement);
Parametry
_Umieszczenie
Odwołanie do lokalizacji, w której zadania w grupie harmonogramu zostaną odchylenie w kierunku wykonywania na.
Wartość zwracana
Wskaźnik do nowo utworzonej grupy harmonogramu. Ten ScheduleGroup
obiekt zawiera początkową liczbę odwołań.
Uwagi
Ta metoda spowoduje utworzenie domyślnego harmonogramu procesu i/lub dołączone do kontekstu wywołującego, jeśli nie ma harmonogramu aktualnie skojarzonego z kontekstem wywołującym.
Po zakończeniu planowania pracy należy wywołać metodę Release w grupie harmonogramu. Harmonogram zniszczy grupę harmonogramu po zakończeniu wszystkich zadań w kolejce.
Należy pamiętać, że jeśli ten harmonogram został jawnie utworzony, należy zwolnić wszystkie odwołania do zaplanowanych grup, zanim udostępnisz odwołanie w harmonogramie, odłączając bieżący kontekst od niego.
Odłącz
Odłącza bieżący harmonogram od kontekstu wywołującego i przywraca wcześniej dołączony harmonogram jako bieżący harmonogram, jeśli istnieje. 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
metody lub Scheduler::Attach
.
static void __cdecl Detach();
Uwagi
Metoda Detach
niejawnie usuwa liczbę odwołań z harmonogramu.
Jeśli nie ma harmonogramu dołączonego do kontekstu wywołującego, wywołanie tej metody spowoduje zgłoszenie wyjątku scheduler_not_attached .
Wywołanie tej metody z kontekstu wewnętrznego i zarządzanego przez harmonogram lub kontekstu dołączonego przy użyciu metody innej niż Scheduler::Attach lub CurrentScheduler::Create metody spowoduje zgłoszenie wyjątku improper_scheduler_detach .
Get
Zwraca wskaźnik do harmonogramu skojarzonego z kontekstem wywołującym, nazywany również bieżącym harmonogramem.
static Scheduler* __cdecl Get();
Wartość zwracana
Wskaźnik do harmonogramu skojarzonego z kontekstem wywołującym (bieżący harmonogram).
Uwagi
Ta metoda spowoduje utworzenie domyślnego harmonogramu procesu i/lub dołączone do kontekstu wywołującego, jeśli nie ma harmonogramu aktualnie skojarzonego z kontekstem wywołującym. Żadne dodatkowe odwołanie nie jest umieszczane w Scheduler
obiekcie zwracanym przez tę metodę.
GetNumberOfVirtualProcessors
Zwraca bieżącą liczbę procesorów wirtualnych dla harmonogramu skojarzonego z kontekstem wywołującym.
static unsigned int __cdecl GetNumberOfVirtualProcessors();
Wartość zwracana
Jeśli harmonogram jest skojarzony z kontekstem wywołującym, bieżąca liczba procesorów wirtualnych dla tego harmonogramu; w przeciwnym razie wartość -1
.
Uwagi
Ta metoda nie spowoduje załącznika harmonogramu, jeśli kontekst wywołujący nie jest jeszcze skojarzony z harmonogramem.
Wartość zwracana z tej metody to natychmiastowe próbkowanie liczby procesorów wirtualnych dla harmonogramu skojarzonego z kontekstem wywołującym. Ta wartość może być nieaktualna, gdy zostanie zwrócona.
GetPolicy
Zwraca kopię zasad, za pomocą której został utworzony bieżący harmonogram.
static SchedulerPolicy __cdecl GetPolicy();
Wartość zwracana
Kopia zasad, za pomocą której utworzono bieżący harmonogram.
Uwagi
Ta metoda spowoduje utworzenie domyślnego harmonogramu procesu i/lub dołączone do kontekstu wywołującego, jeśli nie ma harmonogramu aktualnie skojarzonego z kontekstem wywołującym.
Id
Zwraca unikatowy identyfikator bieżącego harmonogramu.
static unsigned int __cdecl Id();
Wartość zwracana
Jeśli harmonogram jest skojarzony z kontekstem wywołującym, unikatowy identyfikator tego harmonogramu; w przeciwnym razie wartość -1
.
Uwagi
Ta metoda nie spowoduje załącznika harmonogramu, jeśli kontekst wywołujący nie jest jeszcze skojarzony z harmonogramem.
IsAvailableLocation
Określa, czy dana lokalizacja jest dostępna w bieżącym harmonogramie.
static bool __cdecl IsAvailableLocation(const location& _Placement);
Parametry
_Umieszczenie
Odwołanie do lokalizacji do wykonywania zapytań dotyczących bieżącego harmonogramu.
Wartość zwracana
Wskazanie, czy lokalizacja określona przez _Placement
argument jest dostępna w bieżącym harmonogramie.
Uwagi
Ta metoda nie spowoduje załącznika harmonogramu, jeśli kontekst wywołujący nie jest jeszcze skojarzony z harmonogramem.
Należy pamiętać, że wartość zwracana to natychmiastowe próbkowanie tego, czy dana lokalizacja jest dostępna. W obecności wielu harmonogramów dynamiczne zarządzanie zasobami może dodawać lub odbierać zasoby od harmonogramów w dowolnym momencie. W takim przypadku dana lokalizacja może zmienić dostępność.
RegisterShutdownEvent
Powoduje, że dojście zdarzeń systemu Windows przekazane w parametrze _ShutdownEvent
ma być zasygnalizowane, gdy harmonogram skojarzony z bieżącym kontekstem zostanie zamknięty i zostanie zniszczony. W momencie zasygnaliowania zdarzenia wszystkie prace zaplanowane do harmonogramu są ukończone. Za pomocą tej metody można zarejestrować wiele zdarzeń zamknięcia.
static void __cdecl RegisterShutdownEvent(HANDLE _ShutdownEvent);
Parametry
_ShutdownEvent
Dojście do obiektu zdarzenia systemu Windows, który będzie sygnalizowany przez środowisko uruchomieniowe, gdy harmonogram skojarzony z bieżącym kontekstem zamyka się i niszczy się.
Uwagi
Jeśli nie ma harmonogramu dołączonego do kontekstu wywołującego, wywołanie tej metody spowoduje zgłoszenie wyjątku scheduler_not_attached .
ScheduleTask
Planuje lekkie zadanie w harmonogramie skojarzonym z kontekstem wywołującym. Zadanie o lekkiej wadze zostanie umieszczone w grupie harmonogramu określonej przez środowisko uruchomieniowe. Wersja, która przyjmuje parametr _Placement
powoduje, że zadanie jest odchylone w kierunku wykonywania w określonej lokalizacji.
static void __cdecl ScheduleTask(
TaskProc _Proc,
_Inout_opt_ void* _Data);
static void __cdecl ScheduleTask(
TaskProc _Proc,
_Inout_opt_ void* _Data,
location& _Placement);
Parametry
_Proc
Wskaźnik do funkcji do wykonania w celu wykonania treści zadania lekkiego.
_Dane
Wskaźnik void do danych, które zostaną przekazane jako parametr do treści zadania.
_Umieszczenie
Odwołanie do lokalizacji, w której zadanie o lekkiej wadze zostanie odchylenie w kierunku wykonywania na.
Uwagi
Ta metoda spowoduje utworzenie domyślnego harmonogramu procesu i/lub dołączone do kontekstu wywołującego, jeśli nie ma harmonogramu aktualnie skojarzonego z kontekstem wywołującym.
Zobacz też
Przestrzeń nazw współbieżności
Scheduler, klasa
PolicyElementKey
Harmonogram zadań