Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt] QMessageBox порождает кучу потоков


Автор: chaos 14.1.2010, 21:27
Доброго времени суток!
Обнаружил какую-то странность: есть кнопочка, есть слот присоединенный к clicked(). по клику делается
Код

QMessageBox::critical(this, "", "");

и ничего больше.
В таск менеджере, счетчик потоков у данного приложения показывает порождение потоков аж до 10 и потом небольшой спад до 6-7.
Это у всех так ? если да то для чего такое количество?

Автор: djamshud 14.1.2010, 21:35
У меня такого нет. Возможно что-то где-то еще подключено к кнопке?

Linux, Qt 4.5.3.

Автор: chaos 14.1.2010, 22:05
Цитата(djamshud @ 14.1.2010,  18:35)
Возможно что-то где-то еще подключено к кнопке?

для чистоты эксперимента создал новый проект в котором есть только кнопка и слот с QMessageBox.
Та же ситуация smile 


ЗЫ win7(64) QT 4.6

Автор: djamshud 14.1.2010, 22:11
>ЗЫ win7 QT 4.6

Дык! Бета на бете:))

Хз, может это нормальное поведение для виндовой версии. Если она процессор с памятью не жрет, какая разница?

Автор: chaos 14.1.2010, 22:45
Цитата(djamshud @  14.1.2010,  19:11 Найти цитируемый пост)
Если она процессор с памятью не жрет, какая разница? 

мучаюсь когда чего-нибудь не понимаю smile

Автор: andrew_121 14.1.2010, 22:46
Цитата(chaos @  14.1.2010,  22:05 Найти цитируемый пост)
ЗЫ win7 QT 4.6 

в точности такие же версии. проверил. поток/процесс  один.

Добавлено через 13 секунд
mingw

Автор: chaos 14.1.2010, 22:49
Цитата(andrew_121 @ 14.1.2010,  19:46)
Цитата(chaos @  14.1.2010,  22:05 Найти цитируемый пост)
ЗЫ win7 QT 4.6 

mingw

VC++ 9.0

собирал с такими опциями
Код

configure.exe -debug -opensource -shared -no-stl -no-qt3support -webkit -fast -platform win32-msvc2008

Автор: andrew_121 15.1.2010, 01:07
у меня SDK. с какими опциями собирался - хз.
но почему-то, думаю, что не может быть такого. т.к. диспетчер задач, показывает процессы а не потоки. и не верю, что диалоговое окошко, способно создавать себе подобные процессы smile 
наверное что-то все же не так в вашем коде.

Автор: ecspertiza 15.1.2010, 09:54
У меня под семеркой тоже создается сначала 7 потоков потом падает до 5-ти, а под OpenSUSE 11.2 все хорошо))) 

P.S. винда итить ее растудыть.

Автор: andrew_121 15.1.2010, 10:16
ecspertiza, версия Qt, mingw, и какая сборка(сам собирал или SDK) ?

Автор: ecspertiza 15.1.2010, 10:34
Qt 4.6.0, MinGW GCC 4.4.1, собирал сам но там ключики только для плагинов БД Firebird были.

Автор: chaos 15.1.2010, 11:19
Цитата(ecspertiza @ 15.1.2010,  06:54)
У меня под семеркой тоже создается сначала 7 потоков потом падает до 5-ти, а под OpenSUSE 11.2 все хорошо))) 

P.S. винда итить ее растудыть.

радует что я не одинок

Автор: andrew_121 15.1.2010, 12:07
chaos, может это глюк в диспетчере задач? вин7 еще сырая. может другую версию установите, или обновитесь.

зы
не могу сейчас перегрузиться в венду чтоб глянуть версию.

Автор: chaos 15.1.2010, 12:57
andrew_121, сегодня вечером проверю на висте и под линухом(благо 3 компа дома) smile как проверю отпишу!

Автор: chaos 15.1.2010, 14:33
еще только что заметил что при открытии меню у кнопки(QPushButton::setMenu) тоже появляется 1 поток  smile 

Автор: chaos 16.1.2010, 23:43
Во общем проверил на Vista Home Basic - в такс менеджере появляется в итоге 3 потока, если повторно ткнуть кнопку - 5, больше не растет
Запустил на WinXP Prof работающей под VirtualBox - новых потоков не порождается.

ЗЫ запускаю дебаг версию, тк релизные библы не собраны
ЗЫЫ напоминаю smile под Win7 Максимальная таск менеджер отображает 9 потоков, после закрытия диалога 7

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)