Terminare un'attività
È possibile terminare un'attività a runtime. Non è possibile eseguire un task terminato.
Metodo Stop()
Stop()
Ogni attività asincrona termina automaticamente quando viene rimosso il nodo padre della NetLogic. Si consiglia, tuttavia, di terminare le attività all'interno del metodo
Stop()
richiamando il metodo Dispose()
, come mostrato nell'esempio seguente.public override void Stop() { myTask.Dispose(); }
IMPORTANTE:
Il richiamo del metodo
Dispose()
su un'attività asincrona ne comporta il blocco finché il codice eseguito dall'attività non restituisce il controllo al chiamante (tramite il controllo dello stato dell'attività o per il completamento dell'attività).Esempio
L'esempio seguente mostra la creazione, l'esecuzione e il termine di un'attività asincrona.
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 nella NetLogic.MANCIA: A seconda del tipo di attività da creare, la classe di questa variabile deve esserePeriodicTask,DelayedTask, oLongRunningTask
- La definizione di un metodo (IncrementVariable()) che l'attività deve eseguire.
- La creazione dell'attività.All'interno del metodoStart(), nella classe C# contenuta nella 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 Attività asincrona.
- L'esecuzione dell'attività non appena la NetLogic viene inizializzata a runtime.All'interno del metodoStart()nella classe C# contenuta nella NetLogic, viene richiamato il metodoStart()sull'attività (myTask.Start()).
- Il termine dell'attività nel metodoStop()richiamando il metodoDispose().
Fornire un feedback