Constructeur : LongRunningTask(action, executingNode)
Une tâche
LongRunningTask
exécute un code lié au temps ou lié au processeur.LongRunningTask(Action action, IUANode executingNode);
Arguments
- action(Action)
- Méthode ou expression lambda à exécuter.
- executingNode(IUANode)
- Nœud dans lequel le code s’exécute.
Exemple
Une tâche
myLongRunningTask
traite un fichier CSV à l’aide de la méthode ProcessCsvFile()
. Cette méthode prend la tâche elle-même en tant qu’argument, dont l’état est vérifié à l’aide de la propriété IsCancellationRequested
après avoir lu chaque ligne du fichier CSV. De cette manière, la tâche peut être annulée.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; }
Fournir une réponse