Queues VI übergreifend verwenden - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Datenkommunikation (/Forum-Datenkommunikation) +---- Thema: Queues VI übergreifend verwenden (/Thread-Queues-VI-uebergreifend-verwenden) Seiten: 1 2 |
RE: Queues VI übergreifend verwenden - Lucki - 13.03.2015 18:00 Kannst Dir ja auch mal das "Event driven example" anschauen, welches ich mal gepostet hatte. Es handelt sich dabei um wechselseitigen Datenaustausch eines Haupt-VIs mit zwei Sub-Vis. Und wenn es sich nur um die Übertragung eines boolschen Wertes handelt, kann man auch Occurrences verwenden. NI empfiehlt allerdings, die nicht mehr zu nehmen; den Grund habe ich mal gewußt aber jetzt vergessen. Ich verwende sie aber trotzdem gelegentlich, wegen ihrer bestechenden Einfachheit. Gruß Ludwig RE: Queues VI übergreifend verwenden - BNT - 14.03.2015 14:13 (06.03.2015 00:24 )Lucki schrieb:(05.03.2015 23:02 )Holy schrieb: Einzige Möglichkeit eine Queue ohne konsumieren auszulesen ist "Preview".Nein. Seite einigen LV-Versionen gibt es auch die Funktion "Am Anfang Einfügen". Auslesen und gleich wieder einfügen wäre eine zweite Möglichkeit die Queue unverändert zu lassen. Der Queue-Inhalt bleibt bei einer solchen Aktion aber nicht notwendig unverändert. Wenn ein Thread ein Element entnimmt, ist es erst einmal raus. Ein anderer Thread kann dann weitere Elemente entnehmen, bevor der ursprüngliche Thread das entnommene Element wieder vorn einfügt. Ein echter Consumer-Thread würde also möglicherweise eine veränderte Reihenfolge der Element erhalten. Das ist sicher sehr detailverliebt, kann aber wichtig sein. Gruß Holger RE: Queues VI übergreifend verwenden - Lucki - 14.03.2015 15:34 (14.03.2015 14:13 )BNT schrieb: Der Queue-Inhalt bleibt bei einer solchen Aktion aber nicht notwendig unverändert. ...Das ist richtig, nur läuft die Argumentation ins Leere, denn es geht hier um den Vergleich der beiden Methoden: "Wert verlustfrei lesen über den Queue-Status" und "Wert verlustfrei lesen mit lesen und und wiedereinfügen". In beiden Fällen muss nämlich die Reihenfolge "verlustfrei lesen" - "normal Lesen" beachtet werden, und in beiden Fällen ist es nicht von vornherein gegeben, dass Labview das "richtig" macht. Dein Einwand betrifft als beide Methoden gleichermaßen, und nicht nur die eine. Was muß ich also tun, damit die beiden Aktionen in der richtigen Reihenfolge abgearbeitet werden? Das läßt sich sicherlich irgendwie machen, nur: das zu überlegen ist nicht mein Problem. Denn die ganze Diskussion: "Ein Queue mit mehreren Senken" ist für mich ohne praktischen Wert. Meine Antwort #9 auf Holys Beitrag #8 habe ich inzwischen bereut, denn ich wurde damit ungewollt zum Teilnehmer an der für mich rein akademischen Diskkussion "Eine Queue mit mehreren Senken". Wenn wirklich mal der Fall eintreten sollte, dass ein Botschaft VI-übergreifend an mehrere Empfänger gesendet werden muss, und wenn dafür Synchronisation erforderlich ist, und wenn dafür aus irgendwelchen Gründen, die ich jetzt nicht überblicke, Melder nicht geeignet sind: dann nehme ich einfach mehrere Queues, und zwar für jeden Empfänger eine. Gruß Ludwig |