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 

Wait im UI Thread (?)



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!

01.05.2012, 13:15 (Dieser Beitrag wurde zuletzt bearbeitet: 01.05.2012 13:24 von rolfk.)
Beitrag #8

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: Wait im UI Thread (?)
(26.01.2012 17:48 )dimitri84 schrieb:  Hallo,

ich habe vom LabVIEW Support von peak-system.com die Aussage bekommen:

"Wenn ich richtig informiert bin, dann verursachen sowohl Wait, Metronom als auch Tick Count einen Taskwechsel in den GUI thread. Das kann unter umständen sehr negativ sein."

Jetzt bin ich verwirrt. Der UI Thread ist doch der böse mit der geringen Prio, der einem die Programmperformance torpediert. Deswegen auch die Misere mit property nodes. Das passt nicht in meine Weltansicht wo die Waits die Guten sind und ungebremste Schleifen die Bösen.



Soll die jetzt ohne wait laufen? Nää...



Gruß Dimitri

Ein Wait verursacht garantiert keinen Taskwechsel, denn der ganze LabVIEW Prozess ist genau ein Task und kann deshalb nicht einfach so in einen anderen Task umschalten. Ein Wait setzt aber den aktuellen Codejunk in eine Warteliste und erlaubt anderen Codejunks um ausgeführt zu werden. Das geht weiter dann Threads da LabVIEW bevor es Multhreading vom OS spendiert bekam schon ein eigenes, allerdings kooperatives Multithreading hatte. Sogenannte Clumps (in sich nicht weiter teilbare Codeteile) werden von LabVIEW in eine Execution Queue gestellt, um ausgeführt zu werden. Ein Wait bewirkt ein explizites Hintenanstellen vom aktuellen Clump in eine Wartequeue, und gibt anderen Clumps die Gelegenheit ausgeführt zu werden, sofern die dann bestehen. In jedem Fall scheduled LabVIEW den Clump um nach der Wartezeit wieder aufgeweckt (in die Execution Queue gesetzt) zu werden. OS Multithreading macht das alles noch etwas komplexer aber verändert am Prinzip nicht viel.

Eine Wait gibt also tatsächlich anderen Teilen in LabVIEW die Möglichkeit um ausgeführt zu werden und das kann auch DER UI Thread sein. Aber hier muss ausdrücklich darauf hingewiesen werden, dass das ein KANN ist und nicht ein MUSS. Und auch wenn Du kein Wait in den Code setzt wird der UI Thread typischerweise eine Anzahl mal pro Sekunde getriggert, sofern denn etwas im UI Thread auszuführen ist. Die Aussage dass ein Wait oder ähnliches automatisch in den UI Thread wechselt ist also völlig falsch. Es gibt die Kontrolle über den aktuellen Thread explizit auf und das KANN bewirken dass der UI Thread aktiviert wird, aber es MUSS nicht so sein und auch ohne Wait wird der UI Thread regelmässig aktiviert.

Die Aussage vom Support ist in diesem Sinne faktisch falsch und klingt eher nach einer faulen Entschuldigung für etwas was sie in ihrem Produkt verbrochen haben.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
Wait im UI Thread (?) - dimitri84 - 26.01.2012, 17:48
RE: Wait im UI Thread (?) - dimitri84 - 01.02.2012, 20:50
RE: Wait im UI Thread (?) - Falk - 02.02.2012, 09:37
RE: Wait im UI Thread (?) - Lucki - 01.02.2012, 22:30
RE: Wait im UI Thread (?) - Lucki - 02.02.2012, 14:18
RE: Wait im UI Thread (?) - dimitri84 - 02.02.2012, 18:04
RE: Wait im UI Thread (?) - dimitri84 - 01.05.2012, 12:04
RE: Wait im UI Thread (?) - rolfk - 01.05.2012 13:15
RE: Wait im UI Thread (?) - dimitri84 - 02.05.2012, 07:05

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Frage zur Architektur: Statemachine und Wait for Events tuhpon 6 3.248 18.03.2024 16:14
Letzter Beitrag: tuhpon
  Wait und Wait-Until, seltsame Effekte, ich verstehs einfach nicht... catbull 3 3.128 24.09.2018 20:56
Letzter Beitrag: Lucki
  Wait Befehl LabViewPete 3 4.137 17.09.2015 09:12
Letzter Beitrag: Lucki
  Fehler bei "Wait on Asyn. Call" D_Sev 11 8.327 20.11.2013 16:37
Letzter Beitrag: D_Sev
  "exit vi" - finde den thread nich mehr... gottfried 5 4.851 01.08.2013 08:24
Letzter Beitrag: gottfried
  Prozessor/Thread Zuweisung win98 7 6.983 02.08.2011 13:43
Letzter Beitrag: Rene_B

Gehe zu: