- Manuale introduttivo
- Utilizzo del software
- Oggetti grafici e di layout
- Sessioni e impostazioni locali
- Sviluppo di soluzioni
- Sviluppo di progetti con C#
- NetLogic
- Metodi ed eventi in C#
- Riferimento API C#
- Esempi di applicazione
- Esercitazione dell'interfaccia utente
- Esercitazione sui collegamenti dinamici
- Esercitazione sui logger
- Esercitazione sugli allarmi
- Esercitazione su OPC UA
- Esercitazione sulle NetLogic
- Riferimenti a oggetti e variabili
Costruttore: LongRunningTask(action, executingNode)
Un'attività
LongRunningTask
esegue un codice limitato per tempo o CPU.LongRunningTask(Action action, IUANode executingNode);
Argomenti
- action(Action)
- 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 metodo ProcessCsvFile()
. Il metodo ha come argomento l'attività stessa, il cui stato viene verificato tramite la proprietà IsCancellationRequested
dopo la lettura di ogni riga del file CSV. In questo modo, l'attività può essere annullata.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; }
Fornire un feedback