- Começar a usar
- Criação de projetos
- OPC UA
- Objetos gráficos
- Objetos gráficos predefinidos
- Sessões e localidades
- Referências de objetos e variáveis
- Extensão de projetos
- NetLogic
- Referência de API C#
- Tutoriais
- Tutorial de alarmes
- Tutorial de vínculos dinâmicos
- Tutorial de objetos gráficos
- Tutorial do NetLogic
- Tutorial do OPC UA
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