Zu viele BulkChanged Events
Hintergrund:
In einem Projekt benötige ich beim RT Start (bzw. nach dem Nachladen und auch später dann unregelmässig) die Werte einiger Variablen. Die Wertänderung, also das Changed Event benötige ich aber eigentlich nicht. Jetzt hab ich mir eine leicht geänderte VariableSubscription Klasse (aus github AddIn HowToMaster) erstellt, die intern das Changed Event nutzt und dabei alle Variablen des Containers auf .IsOnline prüft. Wenn alle Variablen Online sind, wird intern der Eventhandler abgemeldet und ein "IsInitialized" Event nach außen geworfen. Dadurch kann ich also z.B. in einer ProjectService Extension beim Start den Onlinecontainer erzeugen und im IsInitialized Eventhandler alle Werte der Variablen auf einmal lesen.
Jetzt zum eigentliche Grund für diesen Post:
Nachdem ich die einzelnen Changed Events ja nicht benötige, sondern nur dazu nutze um herauszufinden wann alle Variablen online sind, dachte ich mir dass das BulkChanged Event noch performanter wäre. Im speziellen Fall habe ich z.B. 57 interne Variablen im Container - löst also beim Start bzw. Nachladen (mindestens) 57 Changed Events aus. Mit BulkChanged habe ich erwartet nur noch 1-2 Events zu bekommen. Es bleiben aber immer noch 50 Events. Das stellt für mich natürlich den Sinn dieses Events ziemlich in Frage. Ich mein 57 interne Variablen die in einem Onlinecontainer sind... das kann doch nicht länger als 100ms dauern bis die alle einen Wert haben.
Ich geb zu das BulkChanged Event bisher noch nie benutzt zu haben, vielleicht ist es in gewissen Anwendungen wo zur Laufzeit sehr viele Wertänderungen auftauchen sinnvoll, aber beim RT Start/Nachladen ist es schon sehr enttäuschend bzw. hab ich waas anderes erwartet. Ist das irgendwie ein Sonderfall?
This is a migrated post! Originally posted on 04.06.2020 by user mst. Please be aware that information can be outdated.
Disclaimer
This document governs the use of our Community Forum. By registering and using the platform, you accept these conditions.
The COPA-DATA Community Forum serves to encourage the exchange of information and experience about the zenon software between forum users respectively zenon users.
Please mind that any published information on the Community Forum is the subjective opinion and view based on the experience and the level of knowledge of the author. COPA-DATA does not overtake any responsibility for the content and the accuracy of the shared information.
Users of the Community Forum are encouraged to share only well-founded experiences and to point out any risks associated with the implementation of proposed solutions to problems. COPA-DATA at its absolute discretion, reserves the right to moderate the forum. In this connection COPA-DATA may remove any information containing false facts, potentially dangerous solutions, bad language or content that may insult, degrade or discriminate others. COPA-DATA may block a non-complying user from forum access if the user violated this provision.
COPA-DATA reserves the right to change this document from time to time at own discretion.
Ing. Punzenberger COPA-DATA GmbH
Karolingerstraße 7b · 5020 Salzburg · Austria
www.copadata.com