zamykanie multithread jednoczesnie

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.
Awatar użytkownika
skalag
Posty: 57
Rejestracja: 19 sty 2007 00:00

zamykanie multithread jednoczesnie

Post autor: skalag »

Witam

Zna ktos jakis szybki i dobry sposob na jednoczesne zamykanie wszystkich rownoleglych petli while( tzn chodzi mi mulithread ).
Mam 3 oddzielne watki pracujace w jednym VI.
Mam problem gdy prubuje je zamknac gdy w ktoryms z nich wystapi error.
Normalnie to zamykam w event na zmiane wartosci stop.

Ale zauwazylem ze jak programowo zmienie wartosc kontrolki to event wtedy nie reaguje.
Moze mi tez ktos to wyjasnic? Istnieje jakis prosty sposob na zrobienie event kiedy VI zmienia wartosc jakiejs kontrolki?

Co jest lepiej uzywac shift register czy feedback gdy
oba przypadki obsluguja tylko jednego subVI.

pzdr
Awatar użytkownika
wino
Posty: 549
Rejestracja: 23 gru 2005 00:00
Wersja środowiska: Nie mam LabVIEW
Lokalizacja: Kraków

zamykanie multithread jednoczesnie

Post autor: wino »

Jeżeli użyjesz właściwości kontrolki value(signaling) do zmiany wartości kontroli to event sie odpali.
Awatar użytkownika
skalag
Posty: 57
Rejestracja: 19 sty 2007 00:00

Re: zamykanie multithread jednoczesnie

Post autor: skalag »

Moglbys to pokazac na przykladzie? lab 8.0
Awatar użytkownika
coolfon
Posty: 232
Rejestracja: 01 gru 2007 08:59
Wersja środowiska: LabVIEW 2009
Kontakt:

Re: zamykanie multithread jednoczesnie

Post autor: coolfon »

Tu masz pokazane jak zrobić, żeby event reagował na programową zmianę jakiejś kontrolki. Tak jak podpowiedział wino - trzeba użyć property node Value (Signaling).

Program prosty - dwa led'y. Jeden zmieniany programowo, drugi przez event.

A co do tych trzech wątków które chcesz zamknąć: komunikują się one jakoś między sobą? Wymieniają jakieś dane? Pokaż ten przykład.
Ostatnio zmieniony 25 lut 2009 22:03 przez coolfon, łącznie zmieniany 1 raz.
Awatar użytkownika
skalag
Posty: 57
Rejestracja: 19 sty 2007 00:00

Re: zamykanie multithread jednoczesnie

Post autor: skalag »

dzieki za przyklad.
co do 3 watkow to jeden to obsluga sterownika silnika, drugi to obsluga
tcp/ip a trzeci to zwyky even reagujacy na zdarzenia.
watki komuinikuja sie ze soba tylko za pomoca zmennych lokalnych.
problem polega na tym ze nie wiem w jaki sposob pozamykac je jezeli w ktoryms pojawi sie blad.( tzn potrafie zamknac ta w ktorej pojawi sie blad ale pozostalych juz nie).
Petle maja blad przekazywany przez shift register.

Pokombinuje z ta val(signaling) i stworze cos na wzor detekcji bledu i obslugi go przez Event.
ale moze ktos zna jakis inny szybszy i latwiesze rozwaizanie problemu.

nie dam rady podeslac tego bo to duzy projek majacy ze 50 Vi i do tego dzialajacy na 2 PC.
ODPOWIEDZ