TaskScheduler.TryExecuteTaskInline(Task, Boolean) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Bepaalt of de opgegeven Task synchroon kan worden uitgevoerd in deze aanroep en of dit wel kan, wordt deze uitgevoerd.
protected:
abstract bool TryExecuteTaskInline(System::Threading::Tasks::Task ^ task, bool taskWasPreviouslyQueued);
[System.Security.SecurityCritical]
protected abstract bool TryExecuteTaskInline(System.Threading.Tasks.Task task, bool taskWasPreviouslyQueued);
protected abstract bool TryExecuteTaskInline(System.Threading.Tasks.Task task, bool taskWasPreviouslyQueued);
[<System.Security.SecurityCritical>]
abstract member TryExecuteTaskInline : System.Threading.Tasks.Task * bool -> bool
abstract member TryExecuteTaskInline : System.Threading.Tasks.Task * bool -> bool
Protected MustOverride Function TryExecuteTaskInline (task As Task, taskWasPreviouslyQueued As Boolean) As Boolean
Parameters
- taskWasPreviouslyQueued
- Boolean
Een Booleaanse waarde die aangeeft of de taak al dan niet in de wachtrij is geplaatst. Als deze parameter Waar is, is de taak mogelijk eerder in de wachtrij geplaatst (gepland); als onwaar is, is de taak niet in de wachtrij geplaatst en wordt deze aanroep uitgevoerd om de taak inline uit te voeren zonder de taak in de wachtrij te plaatsen.
Retouren
Een Booleaanse waarde die aangeeft of de taak inline is uitgevoerd.
- Kenmerken
Uitzonderingen
Het task argument is null.
De task is al uitgevoerd.
Opmerkingen
Een klasse die is afgeleid van het implementeren van TaskScheduler deze functie ter ondersteuning van inline uitvoering van een taak op een thread waarmee een wachttijd voor dat taakobject wordt gestart. Inline-uitvoering is optioneel en de aanvraag kan worden geweigerd door onwaar te retourneren. Hoe meer taken inline kunnen worden uitgevoerd, hoe beter de planner schaalt. In feite kan een planner die te weinig regels bevat, gevoelig zijn voor impasses. Een juiste implementatie moet ervoor zorgen dat een aanvraag die wordt uitgevoerd onder het beleid dat wordt gegarandeerd door de planner, inline kan worden uitgevoerd. Als een scheduler bijvoorbeeld een toegewezen thread gebruikt om taken uit te voeren, moeten alle inliningsaanvragen van die thread lukken.
Als een scheduler besluit om de inline-uitvoering uit te voeren, moet dit worden gedaan door de methode taskscheduler TryExecuteTask van de basistaak aan te roepen met het opgegeven taakobject, waarbij de retourwaarde wordt doorgegeven. Het kan ook geschikt zijn voor de planner om een inline taak uit de interne gegevensstructuren te verwijderen als deze besluit de inlineingsaanvraag te respecteren. Houd er echter rekening mee dat in sommige omstandigheden een planner kan worden gevraagd om een taak inline te plaatsen die niet eerder met de QueueTask methode is verstrekt.
De afgeleide scheduler is verantwoordelijk voor het controleren of de aanroepende thread geschikt is voor het uitvoeren van de opgegeven taak voor wat betreft het eigen plannings- en uitvoeringsbeleid.
Zie TaskScheduler voor meer informatie.