• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Qthread [pętla while(1) wysyłająca komende portem rs]

Object Storage Arubacloud
0 głosów
142 wizyt
pytanie zadane 1 lutego 2020 w C i C++ przez Sc4red Użytkownik (590 p.)

czesc,

 

Mam problem z pętlą:

void MyThread::run(){
    while(1){
       Polaczenie->WriteData(Komenda);
       usleep(1000);}
}

 

Wykonuje się 8 razy po czym występuje:

 

QObject::startTimer: Timers cannot be started from another thread

 

Jak mogę to naprawić ?

komentarz 1 lutego 2020 przez tkz Nałogowiec (42,000 p.)
Pokaż więcej kodu. Ale, żeby nie było, trochę postrzelam. Tego rodzaju błąd może wystąpić, jeśli utworzysz instancję obiektów, do których masz wskaźniki, zanim wywołasz moveToThread (na przykład) tak, że faktycznie znajdują się w innym wątku, kiedy go uruchomisz. Zostaje jeszcze inna opcja, Wszystkie klasy GUI nie mogą zostać przeniesione do innego wątku. Muszą pozostać w wątku z GUI (który utworzył QApplication / QGuiApplication).
komentarz 1 lutego 2020 przez Sc4red Użytkownik (590 p.)

Jasne, projekt jest na github :

https://github.com/Sc4redd/GDM_8341_program

 

Myśle że problem jest związany z obiektem który realizuje połączenie po rs. Spróbowałem go wywołać dopiero w thread, ale efekt jest ten sam. :(

komentarz 1 lutego 2020 przez j23 Mędrzec (194,920 p.)

Według dokumentacji QSerialPort nie jest thread-safe, zatem nie powinna być używana w tym samym czasie w kilku wątkach. U Ciebie jest.

komentarz 4 lutego 2020 przez Sc4red Użytkownik (590 p.)
Jasne, już mi się to udało pozmieniać. Dziękuje za pomoc!

1 odpowiedź

0 głosów
odpowiedź 1 lutego 2020 przez Sc4red Użytkownik (590 p.)
edycja 1 lutego 2020 przez Sc4red
Już mi się udało, rozwiązałem problem. Zamiast otwierać nowy wątek użyłem qtimer z przerywnikiem.

Podobne pytania

0 głosów
1 odpowiedź 171 wizyt
pytanie zadane 20 września 2021 w C i C++ przez tonn204 Mądrala (7,440 p.)
0 głosów
1 odpowiedź 562 wizyt
pytanie zadane 16 listopada 2020 w C i C++ przez Lyokoheros Początkujący (340 p.)
0 głosów
2 odpowiedzi 124 wizyt
pytanie zadane 13 sierpnia 2019 w C i C++ przez amelia.cpp Obywatel (1,860 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...