10.12.2011, 16:26
Das Projekt scheint nach einer Erzeuger-Verbraucher-Struktur zu schreien, wobei die Datenübertagung vom Erzeuger zum Verbraucher über ein Queue erfolgt. Erzeuger und Verbraucher können in unterschiedlichen, parallel aufenden VIs sein, oder auch in parallel laufende Schleifen innerhalb eines VIs.
Lokale Veriablen haben für Dein Projekt diese beiden Nachteile:
- Sie gelten, wie der Name schon sagt, nur innerhalb eines VIs. D.H. Erzeuger und Verbraucher müssten innerhalb eines VIs in parallelen Schleifen liegen.
- Die beiden Schleifen synchronisieren sich nicht. D.h wenn Du die lokale Variable wiederholt liest, weiß Du überhaupt nicht, obs sie zwischenzeitlich upgedatet wurde oder ob es immer noch derselbe Wert ist. Bei Meldern und Queues ist das anders: Der Empfänger wartet, bis wieder etwas in der Schlange ist. Waits in dieser Schleife sind dann nicht erforderlich, die Schleife synchronisiert sich mit der Sendeschleife.
Falls aber die Verarbeitung mal stockt, z.B wegen einer Größenänderung des Diagramms - dafür ist denn die Queue da. Die Daten gehen nicht verloren, die Empfängerschleife erhöht dann ihre Geschwindigkeit, solange, bis die Queue leer ist und erst wieder auf neue Daten gewartet werden muß.
Lokale Veriablen haben für Dein Projekt diese beiden Nachteile:
- Sie gelten, wie der Name schon sagt, nur innerhalb eines VIs. D.H. Erzeuger und Verbraucher müssten innerhalb eines VIs in parallelen Schleifen liegen.
- Die beiden Schleifen synchronisieren sich nicht. D.h wenn Du die lokale Variable wiederholt liest, weiß Du überhaupt nicht, obs sie zwischenzeitlich upgedatet wurde oder ob es immer noch derselbe Wert ist. Bei Meldern und Queues ist das anders: Der Empfänger wartet, bis wieder etwas in der Schlange ist. Waits in dieser Schleife sind dann nicht erforderlich, die Schleife synchronisiert sich mit der Sendeschleife.
Falls aber die Verarbeitung mal stockt, z.B wegen einer Größenänderung des Diagramms - dafür ist denn die Queue da. Die Daten gehen nicht verloren, die Empfängerschleife erhöht dann ihre Geschwindigkeit, solange, bis die Queue leer ist und erst wieder auf neue Daten gewartet werden muß.