(23.05.2012 16:17 )Soean schrieb: Ich habe noch ein anderes Problem bei dieser Software: Sie "läuft nicht rund". Bedeutet: Wie bereits erwähnt habe ich eine Main-Loop und 5 parallel laufende Loops. Das FP ist über eine Tab-Control organisiert. Zu debugging-Zwecken lasse ich mit die Iterationen der einzelnen Schleifen ausgeben. Bei aufruf einiger bestimmter Seiten des Tab-Controls stockt die Software, deutlich daran zu sehen, dass die interationsanzeigen nicht mehr kontinuierlich, sondern stockend hoch laufen, sie machen also Sprünge von meinetwegen 512 auf 523. Der einzige Unterschied ist aber wirklich, dass unterschiedliche Seiten im Tab-Control aufgerufen werden, die States-Machines bleiben in den selben States.
Das zeigt gerade, dass die Loop die den Zähler inkrementiert fröhlich im Hintergrund weiterläuft. Was aber passiert ist das der UI Thread bei Dir durch etwas blockiert wird, und dann kann LabVIEW auch keine Frontpanelupdates machen, auch wenn der Controlwert X mal geupdated wird. Die LabVIEW Eventstruktur hat intern eine EventQueue, aber wenn diese EventQueue nicht abgearbeitet wird indem man die Eventstruktur in einer Loop regelmässig ausführt, kann das Frontpanel blockieren, wenn ein Event mit der Checkbock "Lock Front Panel (defer processin of user actions) untile this event case completes" in der Queue sitzt. Entfernen dieser Checkbox ist aber effektiv meist keine gute Lösung da dies viele andere Probleme mit sich mitbringen kann.