Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Vertegenwoordigt een abstractie voor de huidige planner die is gekoppeld aan de aanroepende context.
Syntaxis
class CurrentScheduler;
Leden
Openbare methoden
| Naam | Description |
|---|---|
| Creƫren | Hiermee maakt u een nieuwe scheduler waarvan het gedrag wordt beschreven door de _Policy parameter en deze koppelt aan de aanroepende context. De zojuist gemaakte scheduler wordt de huidige scheduler voor de aanroepende context. |
| CreateScheduleGroup | Overbelast. Hiermee maakt u een nieuwe planningsgroep binnen de planner die is gekoppeld aan de aanroepende context. De versie die de parameter _Placement gebruikt, zorgt ervoor dat taken binnen de nieuw aangemaakte planningsgroep de neiging hebben om te worden uitgevoerd op de locatie gespecificeerd door die parameter. |
| loskoppelen | Koppelt de huidige taakplanner los van de aanroepcontext en zet de eerder gekoppelde taakplanner weer in als de huidige taakplanner, als er een bestaat. Nadat deze methode geretourneerd is, wordt de aanroepende context beheerd door de scheduler, die eerder aan de context verbonden was met behulp van de CurrentScheduler::Create of Scheduler::Attach methode. |
| ophalen | Retourneert een aanwijzer naar de taakplanner die is gekoppeld aan de aanroepende context, ook wel de huidige taakplanner genoemd. |
| GetNumberOfVirtualProcessors | Retourneert het huidige aantal virtuele processors voor de scheduler die is gekoppeld aan de aanroepende context. |
| GetPolicy | Retourneert een kopie van het beleid waarmee de huidige planner is gemaakt. |
| Id | Retourneert een unieke id voor de huidige planner. |
| IsAvailableLocation | Bepaalt of een bepaalde locatie beschikbaar is op de huidige planner. |
| RegisterShutdownEvent | Zorgt ervoor dat de Windows-gebeurtenisgreep die is doorgegeven in de _ShutdownEvent parameter wordt gesignaleerd wanneer de scheduler die is gekoppeld aan de huidige context wordt afgesloten en zichzelf vernietigt. Op het moment dat de gebeurtenis wordt gesignaleerd, is al het werk dat naar de planner is gepland, voltooid. Er kunnen meerdere afsluit gebeurtenissen worden geregistreerd via deze methode. |
| ScheduleTask | Overbelast. Hiermee wordt een lichtgewicht taak ingepland binnen de scheduler die is gekoppeld aan de aanroepende context. De lichtgewicht taak wordt geplaatst in een planningsgroep die wordt bepaald door de runtime. De versie die de parameter _Placement gebruikt, zorgt ervoor dat de taak wordt bevooroordeeld bij het uitvoeren op de opgegeven locatie. |
Opmerkingen
Als er geen scheduler is (zie Scheduler) die is gekoppeld aan de aanroepende context, resulteren veel methoden binnen de CurrentScheduler klasse in de bijlage van de standaardplanner van het proces. Dit kan ook betekenen dat de standaardplanner van het proces wordt gemaakt tijdens een dergelijke aanroep.
Overnamehiƫrarchie
CurrentScheduler
Requirements
Koptekst: concrt.h
Naamruimte: concurrentie
Create
Hiermee maakt u een nieuwe scheduler waarvan het gedrag wordt beschreven door de _Policy parameter en deze koppelt aan de aanroepende context. De zojuist gemaakte scheduler wordt de huidige scheduler voor de aanroepende context.
static void __cdecl Create(const SchedulerPolicy& _Policy);
Parameterwaarden
_Beleid
Het scheduler-beleid dat het gedrag van de zojuist gemaakte planner beschrijft.
Opmerkingen
De koppeling van de scheduler aan de oproepende context plaatst impliciet een referentietelling op de scheduler.
Nadat een scheduler met de Create methode is gemaakt, moet u op een bepaald moment in de toekomst de methode CurrentScheduler::Detach aanroepen om de scheduler te laten afsluiten.
Als deze methode wordt aangeroepen vanuit een context die al is gekoppeld aan een andere planner, wordt de bestaande planner onthouden als de vorige planner en wordt de zojuist gemaakte planner de huidige planner. Wanneer u de CurrentScheduler::Detach methode op een later moment aanroept, wordt de vorige planner hersteld als de huidige planner.
Deze methode kan verschillende uitzonderingen genereren, waaronder scheduler_resource_allocation_error en invalid_scheduler_policy_value.
CreateScheduleGroup
Hiermee maakt u een nieuwe planningsgroep binnen de planner die is gekoppeld aan de aanroepende context. De versie die de parameter _Placement gebruikt, zorgt ervoor dat taken binnen de nieuw aangemaakte planningsgroep de neiging hebben om te worden uitgevoerd op de locatie gespecificeerd door die parameter.
static ScheduleGroup* __cdecl CreateScheduleGroup();
static ScheduleGroup* __cdecl CreateScheduleGroup(location& _Placement);
Parameterwaarden
_Plaatsing
Een verwijzing naar een locatie waar de taken binnen de planningsgroep worden bevooroordeeld voor uitvoering op.
Retourwaarde
Een aanwijzer naar de zojuist gemaakte planningsgroep. Dit ScheduleGroup-object heeft een eerste verwijzingsaantal dat erop is geplaatst.
Opmerkingen
Met deze methode wordt de standaardplanner van het proces gemaakt en/of gekoppeld aan de aanroepende context als er momenteel geen scheduler is gekoppeld aan de aanroepende context.
U moet de releasemethode voor een planningsgroep aanroepen wanneer u klaar bent met het plannen van het werk. De scheduler vernietigt de taakgroep wanneer al het werk in de wachtrij is voltooid.
Als u deze scheduler expliciet hebt gemaakt, moet u alle verwijzingen naar schemagroepen erin vrijgeven voordat u uw verwijzing op de scheduler loslaat door de huidige context ervan los te koppelen.
Loskoppelen
Koppelt de huidige taakplanner los van de aanroepcontext en zet de eerder gekoppelde taakplanner weer in als de huidige taakplanner, als er een bestaat. Nadat deze methode geretourneerd is, wordt de aanroepende context beheerd door de scheduler, die eerder aan de context verbonden was met behulp van de CurrentScheduler::Create of Scheduler::Attach methode.
static void __cdecl Detach();
Opmerkingen
De Detach methode verwijdert impliciet een verwijzingsaantal van de scheduler.
Als er geen scheduler is gekoppeld aan de aanroepende context, resulteert het aanroepen van deze methode in een scheduler_not_attached uitzondering.
Als u deze methode aanroept vanuit een context die intern is voor en wordt beheerd door een planner, of een context die is gekoppeld met een andere methode dan de Scheduler::Attach of CurrentScheduler::Create-methoden , wordt er een improper_scheduler_detach uitzondering gegenereerd.
Ontvang
Retourneert een aanwijzer naar de taakplanner die is gekoppeld aan de aanroepende context, ook wel de huidige taakplanner genoemd.
static Scheduler* __cdecl Get();
Retourwaarde
Een aanwijzer naar de planner die is gekoppeld aan de aanroepende context (de huidige planner).
Opmerkingen
Met deze methode wordt de standaardplanner van het proces gemaakt en/of gekoppeld aan de aanroepende context als er momenteel geen scheduler is gekoppeld aan de aanroepende context. Er wordt geen extra verwijzing geplaatst op het Scheduler object dat door deze methode wordt geretourneerd.
AantalVirtueleProcessorenOphalen
Retourneert het huidige aantal virtuele processors voor de scheduler die is gekoppeld aan de aanroepende context.
static unsigned int __cdecl GetNumberOfVirtualProcessors();
Retourwaarde
Als een planner is gekoppeld aan de aanroepende context, is het huidige aantal virtuele processors voor die planner; anders is de waarde -1.
Opmerkingen
Deze methode zal niet resulteren in de koppeling van de scheduler als de aanroepende context nog niet reeds is geassocieerd met een scheduler.
De retourwaarde van deze methode is een onmiddellijke steekproef van het aantal virtuele processors voor de scheduler die is gekoppeld aan de aanroepende context. Deze waarde kan verlopen zijn op het moment dat deze wordt geretourneerd.
GetPolicy
Retourneert een kopie van het beleid waarmee de huidige planner is gemaakt.
static SchedulerPolicy __cdecl GetPolicy();
Retourwaarde
Een kopie van het beleid waarmee de huidige planner is gemaakt.
Opmerkingen
Met deze methode wordt de standaardplanner van het proces gemaakt en/of gekoppeld aan de aanroepende context als er momenteel geen scheduler is gekoppeld aan de aanroepende context.
Identiteitsbewijs
Retourneert een unieke id voor de huidige planner.
static unsigned int __cdecl Id();
Retourwaarde
Als een scheduler is gekoppeld aan de aanroepende context, wordt een unieke identificatie voor die scheduler gegeven; anders is de waarde -1.
Opmerkingen
Deze methode resulteert niet in het toewijzen van een scheduler als de aanroepende context nog niet is gekoppeld aan een scheduler.
IsBeschikbareLocatie
Bepaalt of een bepaalde locatie beschikbaar is op de huidige planner.
static bool __cdecl IsAvailableLocation(const location& _Placement);
Parameterwaarden
_Plaatsing
Een verwijzing naar de locatie waar informatie over moet worden opgevraagd bij de huidige planner.
Retourwaarde
Een indicatie of de locatie die door het _Placement argument is opgegeven, al dan niet beschikbaar is in de huidige planner.
Opmerkingen
Deze methode resulteert niet in het koppelen aan de planner als de aanroepende context nog niet is gekoppeld aan een scheduler.
Houd er rekening mee dat de retourwaarde een onmiddellijke steekproef is van of de opgegeven locatie beschikbaar is. In aanwezigheid van meerdere planners kan dynamisch resourcebeheer op elk gewenst moment resources van planners toevoegen of verwijderen. Als dit gebeurt, kan de opgegeven locatie de beschikbaarheid wijzigen.
RegisterShutdownEvent
Zorgt ervoor dat de Windows-gebeurtenisgreep die is doorgegeven in de _ShutdownEvent parameter wordt gesignaleerd wanneer de scheduler die is gekoppeld aan de huidige context wordt afgesloten en zichzelf vernietigt. Op het moment dat de gebeurtenis wordt gesignaleerd, is al het werk dat naar de planner is gepland, voltooid. Er kunnen meerdere afsluit gebeurtenissen worden geregistreerd via deze methode.
static void __cdecl RegisterShutdownEvent(HANDLE _ShutdownEvent);
Parameterwaarden
_ShutdownEvent
Een ingang naar een Windows-gebeurtenisobject dat wordt gesignaleerd door de runtime wanneer de scheduler die is gekoppeld aan de huidige context wordt afgesloten en zichzelf vernietigt.
Opmerkingen
Als er geen scheduler is gekoppeld aan de aanroepende context, resulteert het aanroepen van deze methode in een scheduler_not_attached uitzondering.
ScheduleTask
Hiermee wordt een lichtgewicht taak ingepland binnen de scheduler die is gekoppeld aan de aanroepende context. De lichtgewicht taak wordt geplaatst in een planningsgroep die wordt bepaald door de runtime. De versie die de parameter _Placement gebruikt, zorgt ervoor dat de taak wordt bevooroordeeld bij het uitvoeren op de opgegeven locatie.
static void __cdecl ScheduleTask(
TaskProc _Proc,
_Inout_opt_ void* _Data);
static void __cdecl ScheduleTask(
TaskProc _Proc,
_Inout_opt_ void* _Data,
location& _Placement);
Parameterwaarden
_Proc
Een aanwijzer naar de functie die moet worden uitgevoerd om de inhoud van de lichtgewichttaak uit te voeren.
_Gegevens
Een lege pointer naar de gegevens die als parameter worden doorgegeven aan het kernonderdeel van de taak.
_Plaatsing
Een verwijzing naar een locatie waar de lichtgewicht taak wordt bevooroordeeld bij uitvoering.
Opmerkingen
Met deze methode wordt de standaardplanner van het proces gemaakt en/of gekoppeld aan de aanroepende context als er momenteel geen scheduler is gekoppeld aan de aanroepende context.
Zie ook
concurrentie Namespace
Scheduler-klasse
PolicyElementKey
Taakplanner