Eliminar una tarea
Puede eliminar una tarea en tiempo de ejecución. No puede ejecutar una tarea que se ha eliminado.
Stop() Método
Stop()
Método Cada tarea asincrónica termina automáticamente cuando se quita el nodo primario de NetLogic. No obstante, se recomienda eliminar las tareas dentro del método
Stop()
mediante la invocación del método Dispose()
, como se muestra en el siguiente ejemplo.public override void Stop() { myTask.Dispose(); }
IMPORTANTE:
Al invocar el método
Dispose()
en una tarea asíncrona, esta se bloquea hasta que el código ejecutado por la tarea devuelve el control al autor de la invocación (mediante el control del estado de la tarea o para completar la tarea).Ejemplo
El siguiente ejemplo muestra la creación, ejecución y eliminación de una tarea asincrónica.
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;
El ejemplo incluye:
- Definición de una variable de instancia privada (private PeriodicTask myTask;) en la clase C# incluida en NetLogic.CONSEJO: Dependiendo del tipo de tarea que se va a crear, la clase de esta variable debe serPeriodicTask,DelayedTaskoLongRunningTask
- Definición de un método (IncrementVariable()) que la tarea debe ejecutar.
- Creación de la tarea.Dentro del métodoStart(), en la clase C# incluida en NetLogic, la variable de instancia privada (myTask) se inicializa utilizando el constructor de clase (PeriodicTask).CONSEJO: El constructor requiere una variedad de argumentos basada en la clase a la que pertenece. Consulte Tarea asíncrona.
- Ejecución de la tarea en cuanto se inicialice NetLogic de tiempo de ejecución.Dentro del métodoStart()en la clase C# incluida en NetLogic, el métodoStart()se invoca en la tarea (myTask.Start()).
- Puede eliminar la tarea en el métodoStop()invocando el métodoDispose().
Entregue su opinión