![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
AD |
![]()
Сообщение
#1
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
Я не понимаю, почему у меня нет корректного завершения потока. Заходит в поток только при первом вызове, а соответственно рисует график только при первом выборе параметров, далее необходимо закрывать это диалоговое окошко и открывать снова- что крайне неудобно. Просьба, пожалуйста, поясните, в чем ошибки?
Ниже приведен код: thread
Заранее благодарен за помощь! |
|
|
![]() |
Tonal |
![]()
Сообщение
#2
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: ![]() ![]() ![]() |
Всё правильно - так и должно быть (в смысле выполнятся 1 раз).
В коде нужно if заменить на while, stopped с bool на QWaitCondition и добавить ещё QWaitCondition для убиения или лучше на QThreadPool или QtConcurrent::run переделать - тогда и стопать не надо и специально завершать. ![]() П.С. Ты уверен, что тут нужен отдельный поток? П.П.С. Убей дубль сообщения, чтобы не смущать народ. ![]() Сообщение отредактировал Tonal - 12.9.2008, 10:34 |
|
|
AD |
![]()
Сообщение
#3
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(Tonal) Всё правильно - так и должно быть (в смысле выполнятся 1 раз). В коде нужно if заменить на while, stopped с bool на QWaitCondition и добавить ещё QWaitCondition для убиения или лучше на QThreadPool или QtConcurrent::run переделать - тогда и стопать не надо и специально завершать. ![]() П.С. Ты уверен, что тут нужен отдельный поток? П.П.С. Убей дубль сообщения, чтобы не смущать народ. ![]() С РАДОСТЬЮ УБИЛ БЫ, но у меня нет таких прав, а там уже тоже понаписали, блин! Был бы рад, если бы Вы набросок сделали, так не очень понятно. Можно с помощью QThreadPool набросок? P.S. Юра, ты убил? ![]() Стоп: в Qt 4.3.2 нет ни QThreadPool, ни QtConcurrent!!! Возможно я опять криво выразился, но мне необходимо, чтобы run запускался каждый раз, после нажатия кнопочки ОК! Чтобы поняли, о чем я, смотрите тему трепа "Результаты проекта", последние 2 рисунка. Сообщение отредактировал AD - 12.9.2008, 11:05 |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 18.2.2025, 6:34 |