CurrentScheduler — Klasa

Reprezentuje abstrakcję dla bieżącego harmonogramu skojarzonego z kontekstem wywołującym.

Składnia

class CurrentScheduler;

Członkowie

Metody publiczne

Nazwa/nazwisko opis
Utwórz 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

_Zasad
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.

_Danych
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ń