Название: Потоки Отправлено: demaker от Сентября 04, 2015, 12:47 Есть простейшая программа обработки портов
Код
Но выдается ошибка Код: QThread: Destroyed while thread is still running хотя в деструктор Thread заходит, но сам процесс не убивается не могу понять почему??? Название: Re: Потоки Отправлено: Old от Сентября 04, 2015, 12:56 Потому, что quit завершает цикл обработки событий потока, а вы его даже не запускаете.
Добавляйте свой флажок завершения бесконечного цикла в run. Название: Re: Потоки Отправлено: demaker от Сентября 04, 2015, 13:17 Ожидал такого ответа.
Ну если правильно понял Вас ) делаю так Код
но выдается все таже ошибка Код: QThread: Destroyed while thread is still running Название: Re: Потоки Отправлено: Old от Сентября 04, 2015, 13:19 Лучше flag сделать членом Thread и quit можно не вызывать.
Название: Re: Потоки Отправлено: demaker от Сентября 04, 2015, 13:28 ))
И так делал как Вы сказали Вот код Код
Но не помогает (( Название: Re: Потоки Отправлено: Old от Сентября 04, 2015, 13:33 Код
И что находится в handlePress? Название: Re: Потоки Отправлено: demaker от Сентября 04, 2015, 13:39 Да конечно Вы правы!
Не убрал)) wait() Код
Код
Код
Но к сожалению в консоль выводится что программа завершилась это уже лучше))) но КРАХОМ (( Название: Re: Потоки Отправлено: Old от Сентября 04, 2015, 13:42 И еще вопрос. Вы уверены, что это сообщение выдается при разрушении именно этой нитки? Может есть другие?
Попробуйте за комментировать создание этой нитки - останется сообщение или нет? Название: Re: Потоки Отправлено: demaker от Сентября 04, 2015, 13:54 Ну я только создаю только одну нитку - Thread. Конечно есть main ))
Давайте я скину проект) Так будет проще Название: Re: Потоки Отправлено: Old от Сентября 04, 2015, 13:57 ok
Название: Re: Потоки Отправлено: PimenS от Сентября 04, 2015, 13:57 Цитировать while(flag) { msleep(3); handlePress(); } это так и задумано, чтобы handlePress() выполнялся бесконечно? Название: Re: Потоки Отправлено: demaker от Сентября 04, 2015, 14:03 :)
Название: Re: Потоки Отправлено: Old от Сентября 04, 2015, 14:14 Добавьте в конструкторе MainWindow инициализацию thread:
Код
А в деструктор код завершения нитки. Название: Re: Потоки Отправлено: demaker от Сентября 04, 2015, 14:39 А что
такая запись не катит Код
??? Название: Re: Потоки Отправлено: Old от Сентября 04, 2015, 14:40 А что А если такая запись не катит Код
??? if(initNumberLineGPIO() && initDirectionLineGPIO()) вернет false? :) Название: Re: Потоки Отправлено: demaker от Сентября 04, 2015, 14:44 Да согласен :) - логично.
Но аппаратно это не может произойти. и если так произойдет, то Код: thread = NULL и норм )) Название: Re: Потоки Отправлено: Old от Сентября 04, 2015, 14:47 У меня нет gpio, поэтому я тут-же получил при разрушении MainWindow. :)
А так все работает. Название: Re: Потоки Отправлено: demaker от Сентября 04, 2015, 14:49 Я работаю под Linux.
А Вы? Название: Re: Потоки Отправлено: Old от Сентября 04, 2015, 14:50 Я работаю под Linux. И я.А Вы? Название: Re: Потоки Отправлено: demaker от Сентября 04, 2015, 14:54 :) замечательно
Ну а если закоментить вызов handlePress() в потоке и просто вызывать указатель на поток в объекте класса MainWindow то все норм Название: Re: Потоки Отправлено: Old от Сентября 04, 2015, 14:56 :) замечательно Я просто закомментировалНу а если закоментить вызов handlePress() в потоке и просто вызывать указатель на поток в объекте класса MainWindow то все норм f(initNumberLineGPIO() && initDirectionLineGPIO()) в конструкторе. Нитка нормально создается и завершается. Название: Re: Потоки Отправлено: demaker от Сентября 04, 2015, 15:02 Ну-у-у :)
у меня все равно выдает в консоль дебаг Код: QThread: Destroyed while thread is still running Название: Re: Потоки Отправлено: Old от Сентября 04, 2015, 15:04 Попробуйте исправить даты у файлов и перекомпилировать весь проект. Мне пришлось даты у файлов менять, а то вы как из глубокого будущего, 2028 год все таки. :)
Название: Re: Потоки Отправлено: demaker от Сентября 04, 2015, 15:06 )))))))))))))))))))))))))))))))))
сча попробую Название: Re: Потоки Отправлено: demaker от Сентября 04, 2015, 15:08 Хотя какая разница ?
Название: Re: Потоки Отправлено: Old от Сентября 04, 2015, 15:09 Хотя какая разница ? Возможно mainwindow.cpp не компилируется при изменении файла?Название: Re: Потоки Отправлено: Tuxford от Сентября 04, 2015, 15:25 Попробуйте сначала закоментить handlePress() и все что работает с gpio, начиная с инициализации. Есть крэш?
Название: Re: Потоки Отправлено: demaker от Сентября 04, 2015, 15:32 У меня IceWM как в ней поменять дату и время ?
Название: Re: Потоки Отправлено: demaker от Сентября 04, 2015, 15:52 Сделал, но не помогло
Название: Re: Потоки Отправлено: Old от Сентября 04, 2015, 15:54 Сделал, но не помогло Вот так у меня работает.Название: Re: Потоки Отправлено: Fregloin от Сентября 07, 2015, 10:25 при завершении потока пробуйте так
thread.quit(); thread.wait(); Название: Re: Потоки Отправлено: demaker от Сентября 07, 2015, 11:50 Я даже коменты убрал
работает :) Спасибо) И процесс вроде убивается, т.е в линуксовую консоль в списоке его нет А дебаг выводит свой стандартный месадж( |