List Folder - nielogiczne zachowanie

Jeśli masz coś do powiedzenia w sprawie LabVIEW napisz. Tutaj są tematy, których nie można uściślić do innych działów.
wbiker
Posty: 29
Rejestracja: 31 paź 2004 00:00

List Folder - nielogiczne zachowanie

Post autor: wbiker »

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
bogdani
Administrator
Posty: 1315
Rejestracja: 30 lip 2003 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Ruda Śląska
Kontakt:

Re: List Folder - nielogiczne zachowanie

Post autor: bogdani »

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.
Ktoś ci pomógł na forum? Podziękuj dając pochwałę.

Obrazek Obrazek Obrazek
PMaj
Posty: 231
Rejestracja: 04 sty 2004 00:00

Re: List Folder - nielogiczne zachowanie

Post autor: PMaj »

witam
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.
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.
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
wbiker
Posty: 29
Rejestracja: 31 paź 2004 00:00

Re: List Folder - nielogiczne zachowanie

Post autor: wbiker »

Dzięki za dogłębną analizę - teraz rozumiem :)
Pozdrawiam
WBIKER
ODPOWIEDZ