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, 18:26
Beitrag #11

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Design "Erzeuger/Verbraucher
' schrieb:muss ich mir noch ankucken.
Naja, so wie es aussieht, liegt es wohl am Sleep().

Versuch das mit der parellele While-Schleife mal.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
07.10.2009, 10:27
Beitrag #12

wernerIBN Offline
Datenflussumgeher
**


Beiträge: 124
Registriert seit: Sep 2009

8.6 und 2011
2000
DE

52425
Deutschland
Design "Erzeuger/Verbraucher
ERFOLG ! Danke an alle ! tolles Forum.

Zitat:Naja, so wie es aussieht, liegt es wohl am Sleep().
Versuch das mit der parellele While-Schleife mal.

Die parallele While Schleife brachte keine Verbesserung. Wenn meine DLL Funktion in der sleep-Schleife hängt, hing das ganze LabVIEW.

Ausserdem (bitte im Berichtigung, wenn ich da falsch liege) ist ja eh beim Erzeuger-Verbraucher-Konzept die Verbraucherschleife eine eigene While. Demnach hätte die Erzeuger-while ja dann auch weiterlaufen müssen. richtig ? Aber der UI-Button und alles andere war eingefroren, bis mein DLL-Aufruf zurückkam. Dann lief alles wieder.

Ich habe schon öfters in C multithreading Sachen gemacht. Diesmal in LV wars das erste mal.

Zitat:Sleep(): Sleep() stoppt den gesamten Prozess.
TCP/IP: Wenn der TCP/P-Socket nicht event-getriggert arbeitet, könnte es schon sein, dass die TCP/IP-Unterprogramme erst beendet werden, wenn daten ankommen, oder wenn ein Timeout eintritt.

Ich habe das TCP/IP non-blocking ausgelegt. Mein Problem ist aber, dass ein angeschlossenes serielles Gerät halt zwischen Kommando und Antwort mehrere Sekunden brauchen kann, und ich wollte dafür ein VI haben, dass diese "software" Timeouts intern erledigt, aber mein restliches LV nicht lahm legt.

Prozess=Programm. Sleep sollte den thread schlafen legen, nicht das ganze Programm wie bei mir. sleep() legte mir die LV-GUI lahm. Dies brauchte mich auf die Idee, noch mal das LV-CallLIbraryFunctionNode darauf hin anzusehen. Und siehe da:

   

es gibt eine Thread-Einstellung: in UI-Thread ausführen (dafault, war so bei mir) oder In beliebigem Thread ausführen. Ich änderte diese eine Einstellung in "In beliebigen Thread ausführen" und das wars - LV läuft brav weiter, während es in der Verbraucher-while in meiner DLL-Funktion in der sleep() steckt.

Wunderbar.

Danke nochmals - hat mir alles sehr geholfen.

Werner

Erfahrung ist die Summe der gemachten Fehler
KISS - Keep it simple and stupid
Walking on water and developing software from a specification are easy if both are frozen. – Edward V Berard
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


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

Gehe zu: