Éliminer une tâche

Vous pouvez éliminer une tâche lors de l’exécution. Vous ne pouvez pas exécuter une tâche que vous avez éliminée.

Méthode
Stop()

Chaque tâche asynchrone se termine automatiquement lorsque le nœud parent du NetLogic est supprimé. Néanmoins, nous recommandons d’éliminer les tâches à l’intérieur de la méthode
Stop()
en invoquant la méthode
Dispose()
, comme le montre l’exemple suivant.
public override void Stop() { myTask.Dispose(); }
IMPORTANT: L’appel de la méthode
Dispose()
sur une tâche asynchrone la bloque jusqu’à ce que le code exécuté par la tâche renvoie le contrôle à l’appelant (par le biais du contrôle de l’état de la tâche ou pour l’achèvement de la tâche).

Exemple

L’exemple suivant présente la création, l’exécution et l’élimination d’une tâche asynchrone.
public override void Start() { myTask = new PeriodicTask(IncrementVariable, 1000, LogicObject) myTask.Start(); } public override void Stop() { myTask.Dispose(); } private void IncrementVariable() { variable1.Value = variable1.Value + 1; } private PeriodicTask myTask;
L’exemple inclut les étapes suivantes :
  • Définir une variable d’instance privée (
    private PeriodicTask myTask;
    ) dans la classe C# contenue dans le NetLogic.
    CONSEIL: Selon le type de tâche à créer, la classe de cette variable doit être
    PeriodicTask
    ,
    DelayedTask
    ou
    LongRunningTask
    .
  • Définir une méthode (
    IncrementVariable()
    ) que la tâche doit exécuter.
  • Créer la tâche.
    Dans la méthode
    Start()
    , dans la classe C# contenue dans le NetLogic, la variable d’instance privée (
    myTask
    ) est initialisée à l’aide du constructeur de classe (
    PeriodicTask
    ).
    CONSEIL: Le constructeur requiert plusieurs arguments en fonction de la classe à laquelle il appartient. Consultez la rubrique Tâche asynchrone.
  • Exécuter la tâche dès que le NetLogic est initialisé lors de l’exécution.
    Dans la méthode
    Start()
    de la classe C# contenue dans le NetLogic, la méthode
    Start()
    est appelée dans la tâche (
    myTask.Start()
    ).
  • Éliminer la tâche dans la méthode
    Stop()
    en invoquant la méthode
    Dispose()
    .
Fournir une réponse
Vous avez des questions ou des commentaires sur cette documentation ? Veuillez envoyer vos commentaires ici.