Witam,
Spotkałem się ostatnio z dziwnym zachowaniem klocka "List Folder". Według mnie poniższy VI powinien działać następująco:
- string "FIRST FRAME" zostaje wpisany do indicatora "String" (powinien pojawić się odrazu po uruchomieniu VIa na front panelu)
- w drugiej ramce wybrany katolog zostaje wylistowany przy pomocy klocka "List Folder" - powinno dziać się to po wykonaniu poprzedniej klatki - niestety tak sie nie dzieje. Można to łatwo zaobserwować gdy w listowanym katalogu jest np 1000 plików, wtedy widać że wpisanie stringa z pierwszej klatki następuje dopiero po wylistowaniu katalogu co wydaje mi się zupełnie nielogiczne.
- nastepne klatki stworzyłem jedynie w celu leprzego zaobserwowania tego dziwnego zjawiska
[img]http://www.e-lotnisko.nazwa.pl/wg_temp/ ... roblem.jpg[/img]
Z góry dzięki za wyjaśnienie tej sprawy.
WBIKER
List Folder - nielogiczne zachowanie
-
- Administrator
- Posty: 1315
- Rejestracja: 30 lip 2003 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Ruda Śląska
- Kontakt:
Re: List Folder - nielogiczne zachowanie
Witaj
Wydaje mi się, że na moim komputerze jest OK.
Przynajmniej przy debugowaniu widzę poprawną kolejność.
bogdani
PS. Uzupełnij używaną wersję LabVIEW w profilu.
Wydaje mi się, że na moim komputerze jest OK.
Przynajmniej przy debugowaniu widzę poprawną kolejność.
bogdani
PS. Uzupełnij używaną wersję LabVIEW w profilu.
Re: List Folder - nielogiczne zachowanie
witam
Jeżeli priorytetem jest wypisanie najpierw na ekran wartości a dopiero potem wykonanie funkcji to należy wymusić przejście do UIThread - np. poprzez wywołanie funkcji odwołującej się do UI - to jednak zwolni wykonanie proframu (rys)
pozdrawiam
pmaj
Opisany program zachowuje się tak jak piszesz - ale rozumienie nie jest do końca dobre. To nie jest tak, że wylistowanie folderu jest wykonywane przed wpisaniem wartości do stringa. Chodzi o to, że w pierwszej ramce wpisujesz do zmiennej "string" ciąg znaków "First Name", ale nie mówisz w tym miejscu, że priorytetem jest wyświetlenie tego na ekranie. Wyświetlenie na ekranie elementu jest wykonywane w UserInterfejs Execution System. Tymczasem, po wykonaniu 1szej ramki system nie wykonuje wątku interfejsu użytkownika, (bo i po co, to tylko interfejs) ale zaczyna wykonywać funkcję grzebania po folderze. Dopiero jak skończy lub gdy będzie miał czas, to przełączy się do UIThread i wykona przepisanie wartości na ekran. Która pierwsza to nie jest istotne.wbiker pisze:Spotkałem się ostatnio z dziwnym zachowaniem klocka "List Folder". Według mnie poniższy VI powinien działać następująco:
- string "FIRST FRAME" zostaje wpisany do indicatora "String" (powinien pojawić się odrazu po uruchomieniu VIa na front panelu)
- w drugiej ramce wybrany katolog zostaje wylistowany przy pomocy klocka "List Folder" - powinno dziać się to po wykonaniu poprzedniej klatki - niestety tak sie nie dzieje. Można to łatwo zaobserwować gdy w listowanym katalogu jest np 1000 plików, wtedy widać że wpisanie stringa z pierwszej klatki następuje dopiero po wylistowaniu katalogu co wydaje mi się zupełnie nielogiczne.
Jeżeli priorytetem jest wypisanie najpierw na ekran wartości a dopiero potem wykonanie funkcji to należy wymusić przejście do UIThread - np. poprzez wywołanie funkcji odwołującej się do UI - to jednak zwolni wykonanie proframu (rys)
pozdrawiam
pmaj
Nie jestem leniwy
Mam zawyżone wymagania motywacyjne
Mam zawyżone wymagania motywacyjne
Re: List Folder - nielogiczne zachowanie
Dzięki za dogłębną analizę - teraz rozumiem
Pozdrawiam
WBIKER
Pozdrawiam
WBIKER