Descartar tarefa
Você pode descartar uma tarefa em tempo de execução. Você não pode executar uma tarefa que descartou.
Método Stop()
Stop()
Cada tarefa assíncrona termina automaticamente quando o nó pai NetLogic é removido. No entanto, recomendamos o descarte de tarefas dentro do método
Stop()
invocando o método Dispose()
, conforme mostrado no exemplo a seguir.public override void Stop() { myTask.Dispose(); }
IMPORTANTE:
Invocar o método
Dispose()
em uma tarefa assíncrona bloqueia a tarefa até que o código executado pela tarefa retorne o controle ao chamador (por meio do controle do estado da tarefa ou pela conclusão da tarefa).Exemplo
O exemplo a seguir mostra como criar, executar e descartar uma tarefa assíncrona.
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;
O exemplo envolve:
- Definir uma variável de instância privada (private PeriodicTask myTask;) na classe C# contida no NetLogic.DICA: Dependendo do tipo de tarefa a ser criada, a classe dessa variável deve serPeriodicTask,DelayedTaskouLongRunningTask
- Definir um método (IncrementVariable()) que a tarefa deve executar.
- Criar a tarefa.Dentro do métodoStart(), na classe C# contida no NetLogic, a variável de instância privada (myTask) é inicializada usando o construtor de classe (PeriodicTask).DICA: O construtor exige uma variedade de argumentos com base na classe à qual pertence. Consulte Tarefa assíncrona.
- Executar a tarefa assim que o NetLogic é inicializado em tempo de execução.Dentro do métodoStart()na classe C# contida no NetLogic, o métodoStart()é invocado na tarefa (myTask.Start()).
- Descartar a tarefa no métodoStop()invocando o métodoDispose().
Dê sua opinião