Construtor: LongRunningTask(action, executingNode)
Uma tarefa
LongRunningTask
executa um código vinculado ao tempo ou à CPU.LongRunningTask(Action action, IUANode executingNode);
Argumentos
- action(Action)
- O método ou expressão lambda a ser executado.
- executingNode(IUANode)
- O nó no qual o código é executado.
Exemplo
Uma tarefa
myLongRunningTask
processa um arquivo CSV usando o método ProcessCsvFile()
. Esse método usa a própria tarefa como argumento, cujo status é verificado por meio da propriedade IsCancellationRequested
após a leitura de cada linha do arquivo CSV. Dessa forma, a tarefa pode ser cancelada.using System.IO; // For using the StreamReader public class RuntimeNetLogic1 : BaseNetLogic { public override void Start() { // Insert code to be executed when the user-defined logic is started myLongRunningTask = new LongRunningTask(ProcessCsvFile, LogicObject); myLongRunningTask.Start(); } public override void Stop() { // Insert code to be executed when the user-defined logic is stopped myLongRunningTask.Dispose(); } private void ProcessCsvFile(LongRunningTask task) { // example method to read lines from a csv file using (var reader = new StreamReader("path/to/csv/file.csv")) { while (!reader.EndOfStream) { // Check whether task cancellation has been requested if (task.IsCancellationRequested) { // Properly handle task cancellation here return; } string line = reader.ReadLine(); // Process line } } } private LongRunningTask myLongRunningTask; }
Dê sua opinião