Ich habe mir das Beispiel zu VariableSubscription aus https://github.com/copa-data angesehen. Bei einer Änderung der Variablen wird folgender Handler aufgerufen:
Code:
private void Container_BulkChanged(object sender, BulkChangedEventArgs e)
{
try
{
// Do not execute long-running processes here. They are blocking the
// main thread of zenon. Therefore we use the TPL (Task Parallel Library) to run the
// Action as separate thread
_logger.Info("Bulk update received.");
Task.Factory.StartNew(() => _variableChangeReceivedAction(e.Variables));
}
catch (Exception exception)
{
_logger.Error(exception);
}
}
Liefert BulkChangedEventArgs
ein immutable-Objekt oder eine Kopie der Variablen zurück damit diese bei der Verarbeitung (im Verarbeitungs-Thread) vom UI-Thread aus nicht verändert werden?