Как ждать завершения потока? |
Здравствуйте, гость ( Вход | Регистрация )
Как ждать завершения потока? |
mezmay |
13.3.2010, 14:14
Сообщение
#1
|
Активный участник Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: 1 |
Наследую qthread. переопределяю метод run. В программе запускаю поток с помощью start. Как в том же месте программы подождать завершения этого потока?
|
|
|
DEADHUNT |
13.3.2010, 14:19
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
|
|
|
mezmay |
13.3.2010, 15:42
Сообщение
#3
|
Активный участник Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: 1 |
но этот метод просто завершает run() а не ждет его завершения...
|
|
|
Litkevich Yuriy |
13.3.2010, 15:57
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
mezmay |
13.3.2010, 18:10
Сообщение
#5
|
Активный участник Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: 1 |
Тогда помогите разобраться... Программа для чтения данных с GPS-устройства по COM-порту. Метод run() в котором собственно это и делается:
Вызов метода:
Проблема: если устройства нет, то цикл while в run() - длится 10 секунд. Однако если после вызова gps_thread->start() стоит вызов gps_thread->wait(), то сразу срабатывает брейкпоинт на последней строке run'a - строке emit canDelete();... - почему?? Если gps_thread->wait(); убрать, то цикл while работает 10 секунд как ему и положено... |
|
|
Litkevich Yuriy |
13.3.2010, 18:36
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
mezmay |
13.3.2010, 22:21
Сообщение
#7
|
Активный участник Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: 1 |
хз...... дома запустил тоже самое (но с виртуальным портом) - работает...
|
|
|
mezmay |
13.3.2010, 23:16
Сообщение
#8
|
Активный участник Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: 1 |
Еще один вопрос - почему строки
вешают GUI поток? т.е. форма висит пока вэит не закончится, а если оставить только
то нормально работает? так и должно быть?? Сообщение отредактировал mezmay - 13.3.2010, 23:17 |
|
|
Litkevich Yuriy |
14.3.2010, 2:49
Сообщение
#9
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Текстовая версия | Сейчас: 30.11.2024, 9:47 |