Terminare un task

È possibile terminare un task in fase di esecuzione. Non è possibile eseguire un task terminato.

Stop()
Metodo

Ogni task asincrono termina automaticamente quando viene rimosso il nodo padre NetLogic. Si consiglia, tuttavia, di terminare esplicitamente i task all'interno del
Stop()
metodo richiamando il
Dispose()
metodo, come mostrato nell'esempio seguente.
public override void Stop() { myTask.Dispose(); }
IMPORTANTE: Richiamando il
Dispose()
metodo su un blocco task asincrono, finché il codice eseguito dal task restituisce il controllo al chiamante (tramite il controllo dello stato del task o per il completamento del task).

Esempio

L'esempio seguente mostra la creazione, l'esecuzione e l'interruzione di un task asincrono.
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'esempio prevede:
  • Definizione di una variabile di istanza privata (
    private PeriodicTask myTask;
    ) nella classe C# contenuta in NetLogic.
    MANCIA: A seconda del tipo di task da creare, la classe di questa variabile deve essere
    PeriodicTask
    ,
    DelayedTask
    oppure
    LongRunningTask
  • Definizione di un metodo (
    IncrementVariable()
    ) che il task deve eseguire.
  • Creazione del task.
    All'interno del
    Start()
    metodo, nella classe C# contenuta in NetLogic, la variabile dell'istanza privata (
    myTask
    ) viene inizializzata tramite il costruttore di classe (
    PeriodicTask
    ).
    MANCIA: Il costruttore richiede una varietà di argomenti in base alla classe a cui appartiene. Vedere Task asincrono.
  • L'esecuzione del task non appena NetLogic viene inizializzato in fase di esecuzione.
    All'interno del
    Start()
    metodo nella classe C# contenuto in NetLogic, il
    Start()
    metodo viene richiamato sul task (
    myTask.Start()
    ).
  • Terminando il task nel
    Stop()
    metodo richiamando il
    Dispose()
    metodo.
Fornire un feedback
Hai domande o feedback su questa documentazione? invia il tuo feedback qui.