Costruttore: LongRunningTask (azione, in esecuzioneNode)
Un
LongRunningTask
task esegue un codice associato o alla CPU associato.LongRunningTask(Action action, IUANode executingNode);
Argomenti
- action(Azione)
- Il metodo o l'espressione lambda da eseguire.
- executingNode(IUANode)
- Il nodo in cui viene eseguito il codice.
Esempio
Un'attività
myLongRunningTask
elabora un file CSV utilizzando il ProcessCsvFile()
metodo. Questo metodo prende il task stesso come argomento, lo stato del quale viene controllato utilizzando la IsCancellationRequested
proprietà dopo aver letto ciascuna riga del file CSV. In questo modo, il task può essere annullato.using namespace System.IO; // For using the StreamReader class public override void Start() { myLongRunningTask = new LongRunningTask(ProcessCSVFile, LogicObject); myLongRunningTask.Start(); } public override void Stop() { myLongRunningTask.Dispose(); } private void ProcessCsvFile(LongRunningTask task) { using (var reader = new StreamReader(pathToCsvFile)) { 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;
Fornire un feedback