TaskScheduler.TryExecuteTaskInline(Task, Boolean) Methode

Definitie

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

task
Task

De Task uit te voeren.

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.

Van toepassing op

Zie ook