![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
eldar85 |
![]()
Сообщение
#1
|
![]() программист ![]() ![]() ![]() Группа: Участник Сообщений: 283 Регистрация: 2.1.2010 Из: Москва Пользователь №: 1348 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
пробую написать простенькую многопоточную программку, но она выдает сообщение об ошибке
ASSERT failure in QCoreApplication::sendEvent: "Cannot send events to objects owned by a different thread. Current thread 22fe34. Receiver '' (of type 'QProgressBar') was created in thread 5d70b8", file kernel\qcoreapplication.cpp, line 347 Invalid parameter passed to C runtime function. Invalid parameter passed to C runtime function. ASSERT failure in QCoreApplication::sendEvent: "Cannot send events to objects owned by a different thread. Current thread 22fe28. Receiver '' (of type 'QProgressBar') was created in thread 5d70b8", file kernel\qcoreapplication.cpp, line 347 Invalid parameter passed to C runtime function. Invalid parameter passed to C runtime function. вот пример кода
thread.h
ну и про файл
окно выскакивает с такой ошибкой: this applicatoin has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. правда в книге вот эта строка
выглядела так: но setProgress не существует, похоже она была чем то заменена)) Сообщение отредактировал eldar85 - 12.4.2010, 14:02 |
|
|
eldar85 |
![]()
Сообщение
#2
|
![]() программист ![]() ![]() ![]() Группа: Участник Сообщений: 283 Регистрация: 2.1.2010 Из: Москва Пользователь №: 1348 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
капец, разобрался почему не работает))))
у меня в файле про указано
а я компилил в дебаге))) |
|
|
eldar85 |
![]()
Сообщение
#3
|
![]() программист ![]() ![]() ![]() Группа: Участник Сообщений: 283 Регистрация: 2.1.2010 Из: Москва Пользователь №: 1348 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
хоть программа и работает, но все же примерно через раз вылетает, предлогая закрыть программу...
в чем может быть проблема?) |
|
|
fsMark |
![]()
Сообщение
#4
|
![]() Студент ![]() Группа: Участник Сообщений: 97 Регистрация: 23.4.2008 Из: г. Киров Пользователь №: 155 Спасибо сказали: 10 раз(а) Репутация: ![]() ![]() ![]() |
хоть программа и работает, но все же примерно через раз вылетает, предлогая закрыть программу... в чем может быть проблема?) Все операции с GUI надо выполнять в основном потоке, в твоем случае дополнительный поток например может слать сигнал прогресбару находящемуся в основном потоке. |
|
|
eldar85 |
![]()
Сообщение
#5
|
![]() программист ![]() ![]() ![]() Группа: Участник Сообщений: 283 Регистрация: 2.1.2010 Из: Москва Пользователь №: 1348 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
так в GUI не катит многопоточность??? а если второй поток будет выполняться выводя на экран уже в по окончанию работы ??? так нормально будет?
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#6
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
так в GUI не катит многопоточность??? выводя на экран выод на экран - рисованиеподробности тут: Рисование в потоках Ну а графический интерфейс, он нарисован. |
|
|
eldar85 |
![]()
Сообщение
#7
|
![]() программист ![]() ![]() ![]() Группа: Участник Сообщений: 283 Регистрация: 2.1.2010 Из: Москва Пользователь №: 1348 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
спасибо) буду изучать и пробывать))
|
|
|
eldar85 |
![]()
Сообщение
#8
|
![]() программист ![]() ![]() ![]() Группа: Участник Сообщений: 283 Регистрация: 2.1.2010 Из: Москва Пользователь №: 1348 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
мне вот интересно, а сколько потоков допустимо за раз запускать, чтобы комп не начинал пыхтеть как ошпаренный?))
|
|
|
SABROG |
![]()
Сообщение
#9
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
мне вот интересно, а сколько потоков допустимо за раз запускать, чтобы комп не начинал пыхтеть как ошпаренный?)) По количеству ядер на проце. Выше этого числа уже прироста не будет никакого, только бесполезная трата оперативки и расходы на переключение между потоками. |
|
|
eldar85 |
![]()
Сообщение
#10
|
![]() программист ![]() ![]() ![]() Группа: Участник Сообщений: 283 Регистрация: 2.1.2010 Из: Москва Пользователь №: 1348 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
т.е. если у меня двух ядерник, то лучше всего не более двух потоков использовать, я правельно понял?)))
|
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 29.3.2024, 17:32 |