Konstruktor: LongRunningTask(action, executingNode)
Eine
LongRunningTask
-Aufgabe führt zeitgebundenen oder CPU-gebundenen Code aus.LongRunningTask(Action action, IUANode executingNode);
Argumente
- action(Action)
- Die auszuführende Methode bzw. Lambda-Ausdruck.
- executingNode(IUANode)
- Der Knoten, in dem der Code ausgeführt wird.
Beispiel
Eine
myLongRunningTask
-Aufgabe verarbeitet eine CSV-Datei mit der ProcessCsvFile()
-Methode. Diese Methode nimmt die Aufgabe selbst als Argument, deren Status mit Hilfe der IsCancellationRequested
-Eigenschaft nach dem Lesen jeder Zeile der CSV-Datei überprüft wird. Auf diese Weise kann die Aufgabe abgebrochen werden.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; }
Rückmeldung geben