LabVIEWForum.de - Abbruch einer Event-Schleife

LabVIEWForum.de

Normale Version: Abbruch einer Event-Schleife
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Ich habe eine Eventschleife, die über timeout in konstanten Zeitabständen eine bestimmte Aktivität in einer Hauptschleife triggert.
Das ganze läuft über eine Queue, da ich auch von ausserhalb des VIs andere Aktivitäten in der Hauptschleife ausführen möchte.
Diese Schleife bzw. das ganze VI soll irgendwann bei Erfüllung eines Kriteriums automatisch beendet werden.
Nun bin ich am Grübeln was die "sauberste" Lösung ist, dieses zu verwirklichen.

Ich habe mal ein Beispiel-VI angehängt, das zwei mögliche Lösungen aufzeigt (inhaltlich ist das VI natürlich Schwachsinn).

Methode 1: Bei Kriterium-Erfüllung wird Val(Sgnl) eines Boolean gesetzt und das Event ausgewertet.
Den Boolean könnte man auf dem Fronpanel noch auf "hidden" setzen, da es ein "Platzhalter" ist, der nicht weiter interessiert.

Methode 2: Es wird ein echtes User-Event generiert und entsprechend ausgewertet.

Welche Methode würdet ihr bevorzugen? Für mich sieht Methode 2 zwar sauberer aus, ist aber doch um einiges komplizierter.
Deswegen tendiere ich eher zu Methode 1, würde aber gerne andere Meinungen zu dem Thema hören.
Hallo THL,

Methode 3: Lokale Variable nutzen...
[attachment=42077]

Bei diesem Minimalbeispiel (ohne weitere Randbedingungen) kannst du dir wirklich aussuchen, was dir am besten gefällt...
@Gerd
bei manuellem Stop mit dem Knopf wird es wohl an der bezeichneten Stelle ein hässliche Fehlermeldung geben:
[attachment=42080]
@Lucki:
Ohne jetzt noch mal nachzuschauen: Der Fehlercluster war auch vorher nicht verdrahtet, ebenso nicht ein Timeout. Kann man aber beides nachholen, um Fehler(meldungen) zu vermeiden/abzufangen...
Man kann ja die Fehlermeldungen in den Queue-Elementen nach Zerstören der Queue auch benutzen, um parallele Schleifen zu beenden. In vielen Fällen ist das sogar die einfachste Lösung.
[attachment=42083]
(Anm.: Stopknopf = Latch)
Edit: Vergessen VI anzuhängen
[attachment=42088]
Eine Anmerkung zur Methode 3 von Gerd:
Die ist nicht 100% äquivalent zu den von mir zur Diskussion gestellten Methoden.
Die Eventschleife hängt ja solange bis ein Event kommt. Aus dem Grund wird bei Aktivierung von 'Stop' die Schleife nicht sofort abgebrochen sondern erst wenn das nächste timeout-Event kommt. Bei 500 msec noch nicht tragisch, aber ärgerlich wenn man z.B. nur alle 10 sec. triggert.
Referenz-URLs