LabVIEWForum.de - Schleife erst beenden wenn Queue leer ist

LabVIEWForum.de

Normale Version: Schleife erst beenden wenn Queue leer ist
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich erfasse in einer Schleife meine Daten und packe diese in eine Queue. Hab bspw eine Queue erstellet in welche 500 Elemente gesteckt werden können. In einer anderen Schleife dequeue ich und speicher die Daten ab. In dieser Schleife hab ich das vi "Queue-Status lesen" und lass mir die Elementanzahl in der Queue anzeigen. Diese steigt aber mit der Zeit an und erreicht bspw 500. Ist somit die Queue voll? Was passiert nun in der Schleife wo ich die Elemente in die Queue schreibe, da ist doch kein Platz mehr?! Eine Fehlermeldung bekomme ich aber nicht...Wenn ich die Schleife beende in der ich die Daten in die Queue schreibe möchte ich aber dass die Schleife in der ich die Daten schreibe so lange weiterläuft bis die Queue leer ist, wie macht man dass? Ich hab einen Vergleich gemacht ob die Anzahl der Elemente in der Queue gleich 0 ist und erst dann die Schleife zu beenden, aber irgendwie stoppt dann die Schleife garnicht mehrSad

danke gruß
johannes
' schrieb:Was passiert nun in der Schleife wo ich die Elemente in die Queue schreibe, da ist doch kein Platz mehr?!
Das VI "Element einfügen" verhält sich so:[list=1]
[*]Schlange nicht voll: Element wird ohne Wartezeit eingefügt<>
[*]Schlange voll: VI wartet bis zum Timeout, ob noch ein Plätzchen in der Schlange frei wird. Wenn nicht, wird das Element nicht eingefügt und der Timeout am Boolschen Ausgang gemeldet.<>
[st]Ab LV 8.6 gibt es zusätzlich das VI "Element einfügen (verlustbehaftet)". Bei dem gibt es keinen Timeout. Es wartet nie. Ist die Schlange voll, so wird das älteste Element überschrieben und am Boolschen Ausgang wird "Überlauf" gemeldet.

Lv80_img[attachment=20382]
Referenz-URLs