![]() |
|
|
![]()
|
|
| Lindemann66 |
|
||||
|
Thinking... ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 2.8.2011 Где: Ульяновск Репутация: нет Всего: нет |
Всем привет!
У меня такой, возможно, глупый вопрос Следующий код: Заголовочные файлы
Реализация
Суть Нужно создать определённое число потоков (10 в данном примере) И вызывать внутри каждого некую операцию (в данном случае - qDebug) Проблема Программа доходит до бесконечного цикла первого потока, и в нём и остаётся Как можно сделать так, чтобы проинициализировались все 10 бесконечных циклов, и продолжали работу? Буду очень благодарен за любые ответы Это сообщение отредактировал(а) Lindemann66 - 7.9.2011, 09:32 --------------------
stay true |
||||
|
|||||
| alexvs11 |
|
|||
|
hell is here ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 21.8.2010 Репутация: 2 Всего: 10 |
start()
|
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
Lindemann66, ты не создаёшь ни одного потока. То, что твой класс называется ChildThread и то, что он наследован от QThread - ещё не значит, что ты создаёшь поток. Сделай так:
и ещё (просто замечание по стилю) - обычно принято интерфейс класса (секция public) выносить в начало описания, а внутренности, нужные только самому классу (секция private) - в конец. У тебя же наоборот. -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| Alca |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 2 Всего: 50 |
А как же порядок инициализации членов класса? |
|||
|
||||
| Lindemann66 |
|
||||
|
Thinking... ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 2.8.2011 Где: Ульяновск Репутация: нет Всего: нет |
Спасибо за ответы
Почитав их, а также документацию, сделал так, как написано ниже: Заголовочный файл
Реализация
Добавлено через 2 минуты и 5 секунд А что с ними?) --------------------
stay true |
||||
|
|||||
| Alca |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 2 Всего: 50 |
Инициализаци - сверху вниз |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
Lindemann66, у тебя не определено тело основной функции потока. А в случае с таймером наследоваться от QThread - вообще необязательно, как и вызывать start().
Ты попробовал как я тебе написал ? Члены класса (переменные, а не ф-ции) в public - вообще зло. А за такое
ты бы, наверное, и сам руки бы оторвал -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| Alca |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 2 Всего: 50 |
а если переменных много ( порядка 10-20) ? Делать для каждой по два метода (get, set) и по свойству? Чего-то геморно... Это сообщение отредактировал(а) Alca - 7.9.2011, 13:08 |
|||
|
||||
| borisbn |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
я себе для этого в VisualAssistant'е сделал snippet. А раньше (да и щаз иногда) делал макрос
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||
|
|||||
| Alca |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 2 Всего: 50 |
borisbn, я имею ввиду, что объем код начинает увеличиваться со страшной силой
Добавлено через 15 секунд Впадло скролить |
|||
|
||||
| spyswamp |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 349 Регистрация: 18.8.2006 Репутация: 1 Всего: 7 |
Alca, значит это очень плохой класс, который содержит в себе 10-20 переменных-членов, которые надо куда-то выдавать. Говорит лишь о проблеме дизайна, не более.
-------------------- - why you call it beta? - cuz it's betta then nothin' |
|||
|
||||
| Alca |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 2 Всего: 50 |
||||
|
||||
| Lindemann66 |
|
||||||||||||
|
Thinking... ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 2.8.2011 Где: Ульяновск Репутация: нет Всего: нет |
Да, попробовал Респект Единственно, не сработало
ругается на QThread (в 2ух местах, где foreach)
Поэтому заменил на
Теперь буду пробовать прикрутить мутексы Добавлено @ 13:00
да! красиво Тоже так делаю Добавлено @ 13:08 Кстати, не подскажешь, как в твоём коде сделать так, чтобы операция действия с каждым event (там вывод в консоль выполняется) блокировалась мутексом? Если, например, будет
Это сообщение отредактировал(а) Lindemann66 - 8.9.2011, 13:14 --------------------
stay true |
||||||||||||
|
|||||||||||||
| borisbn |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||
|
|||||
| Lindemann66 |
|
|||
|
Thinking... ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 2.8.2011 Где: Ульяновск Репутация: нет Всего: нет |
Спасибо
только если вот так написать QMutexLocker(&m_mutex);, то будет ошибка
Я вот так написал QMutexLocker locker(&m_mutex); Без ошибок собралось Это сообщение отредактировал(а) Lindemann66 - 8.9.2011, 13:46 --------------------
stay true |
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |