TaskScheduler.TryExecuteTaskInline(Task, Boolean) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Détermine si l’élément fourni Task peut être exécuté de manière synchrone dans cet appel, et s’il le peut, l’exécute.
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
Paramètres
- taskWasPreviouslyQueued
- Boolean
Valeur booléenne indiquant si la tâche a déjà été mise en file d’attente ou non. Si ce paramètre a la valeur True, la tâche a peut-être été précédemment mise en file d’attente (planifiée) ; si la valeur est False, la tâche n’est pas connue pour avoir été mise en file d’attente et cet appel est effectué pour exécuter la tâche inline sans la mettre en file d’attente.
Retours
Valeur booléenne indiquant si la tâche a été exécutée inline.
- Attributs
Exceptions
L’argument task est null.
L’opération task a déjà été exécutée.
Remarques
Une classe dérivée d’implémente TaskScheduler cette fonction pour prendre en charge l’exécution inline d’une tâche sur un thread qui lance une attente sur cet objet de tâche. L’exécution inline est facultative et la requête peut être rejetée en retournant false. Toutefois, plus les tâches peuvent être incorporées, mieux le planificateur sera mis à l’échelle. En fait, un planificateur qui inline trop peu peut être susceptible d’interblocages. Une implémentation appropriée doit s’assurer qu’une demande s’exécutant sous les stratégies garanties par le planificateur peut être intégrée. Par exemple, si un planificateur utilise un thread dédié pour exécuter des tâches, toutes les demandes d’incorporation de ce thread doivent réussir.
Si un planificateur décide d’effectuer l’exécution inline, il doit le faire en appelant la méthode taskScheduler de TryExecuteTask base avec l’objet de tâche fourni, en propageant la valeur de retour. Il peut également être approprié pour le planificateur de supprimer une tâche inline de ses structures de données internes s’il décide d’honorer la demande d’incorporation. Notez toutefois que, dans certaines circonstances, un planificateur peut être invité à inliner une tâche qui n’a pas été précédemment fournie avec la QueueTask méthode.
Le planificateur dérivé est chargé de s’assurer que le thread appelant convient à l’exécution de la tâche donnée en fonction de ses propres stratégies de planification et d’exécution.
Pour plus d’informations, consultez TaskScheduler.