INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Design "Erzeuger/Verbraucher



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

06.10.2009, 07:40
Beitrag #3

abrissbirne Offline
LVF-Stammgast
***


Beiträge: 480
Registriert seit: Aug 2007

LV2009, LV2010
2007
EN

66123
Deutschland
Design "Erzeuger/Verbraucher
' schrieb:Hallo,
ich habe noch eine Frage zum Design "Erzeuger/Verbraucher:

Ich verwende Erzeuger-Verbraucher um das Erzeugen der Ereignisse von der Verarbeitung zu trennen.
So wie ich das sehe, werden die Ereignisse ja in eine Queue gestellt, aus der sich dann die Verbraucherschleife bedient.

Also Beispiel: ein Button "Hallo" wird gedrückt, die Erzeugerschleife stellt den String Hallo in die Queue.

Dort holt die Verbraucherschleife den String Hallo raus, und verarbeitet den.
Korrekt. So sollte es sein.

' schrieb:Ich stelle nun fest, dass wenn diese Verarbeitung z.B. 10 sekunden dauert, das ganze GUI 10 Sekunden blockiert ist.

Ich verstehe nicht, wieso der Button „Hallo“ (andere Buttons genauso…) gedrückt bleibt, bis der Code der Verbraucher-Case durch ist.

Ich hätte eigentlich gedacht, der Button macht einen event, der wird in der Erzeuger-Schleife in die Queue eingereiht, und fertig ist. Aber der Button bleibt unten, bis die betreffende Verbraucher-Queue abgearbeitet ist. Also nicht asynchron, nicht parallel.

Die GUI bleibt blockiert. Das gefällt mir nicht…Dry
Das kann ich mir vorstellen. Wie IchSelbst bereits gesagt hat, hast du wohl etwas falsch gemacht.

' schrieb:Kann man das so abändern, dass die GUI immer funktioniert, und die Erzeugerschleife und die Verbraucherschleife parallel ausgeführt werden ?
Ja.

' schrieb:Noch lieber hätte ich, wenn praktisch jeder case meiner Verbraucherschleife parallel läuft, quasi in einem eigenen Thread, Tongue aber ich will ja nicht zu extrem werden.
Wie soll denn jeder Case parallel abgearbeitet werden? Du kannst mehrere parallele Schleifen ausführen. Standartmäßig habe ich mindestens drei Schleifen. Eine Producer, eine Consumer und eine die mein Frontpanel updated. Letztere ist wiederum von der Consumer-Schleife abhängig. Mit dieser Architektur kannst du meiner Meinung nach 80-90% deiner Aufgabenstellungen erledigen. Du kannst allerings auch noch mehr parallele Schleifen hinzufügen. Da sind dir deiner Fantasie keine Grenzen gesetzt.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
Design "Erzeuger/Verbraucher - abrissbirne - 06.10.2009 07:40
Design "Erzeuger/Verbraucher - jg - 06.10.2009, 11:41

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Ansprechendes Design des Frontpanels | Muster in Hintergrund einfügen dulfried 3 4.003 23.08.2017 17:45
Letzter Beitrag: GerdW
  Error Handling in einem Queue Message Design Architektur galilio 2 4.326 09.08.2016 12:20
Letzter Beitrag: galilio
  Protokolieren durch TDMS in einer Erzeuger und Verbraucher Synchronisation Atlaspremier 0 2.519 28.07.2016 13:21
Letzter Beitrag: Atlaspremier
  Queued Message Handler Design galilio 3 5.718 14.07.2016 15:34
Letzter Beitrag: Freddy
  Design Pattern für sequentiellen Verlauf galilio 6 4.621 23.02.2016 08:50
Letzter Beitrag: Freddy
  Erzeuger-Verbraucher Muster Abbruch Verbraucherschleife mit Abarbeitung der Queue lumaxo 5 6.270 12.02.2015 13:55
Letzter Beitrag: Lucki

Gehe zu: