многопоточность QThread |
Здравствуйте, гость ( Вход | Регистрация )
многопоточность QThread |
eldar85 |
12.4.2010, 13:56
Сообщение
#1
|
программист Группа: Участник Сообщений: 283 Регистрация: 2.1.2010 Из: Москва Пользователь №: 1348 Спасибо сказали: 0 раз(а) Репутация: 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 |
25.6.2010, 10:26
Сообщение
#2
|
программист Группа: Участник Сообщений: 283 Регистрация: 2.1.2010 Из: Москва Пользователь №: 1348 Спасибо сказали: 0 раз(а) Репутация: 0 |
все же сложность одна осталась с многопоточностью, я никак не пойму как можно сделать так чтобы метод ран использовал главное окно для вывода на него информации:
сделал функцию для вывода на экран vivod(), в функции knopka() по нажатию кнопки запускается процесс, получается метод run() это другой класс Thread, а остальные все объекты относятся к классу mainWidow, возможно очень глупый вопрос, согласен, но я уже перерыл много инфы и что только не попробывал и никак не дойдет как же сделать из метода run() запуск функции vivod(). и пробывал vivod() сделать функцией другом в классе Thread friend void mainWindow::vivod(); но реакции ноль... помогите разобраться, ну никак не разберусь...
вот в документации приводится пример
получается тут в каждом потоке объявляется новый объект QTcpSocket socket; я так же делал со своим объектом и в консоли вывод что один и тот же объект уже был создан в другом потоке вот так попробывал
в итоге консоль выдала: QObject::setParent: Cannot set parent, new parent is in a different thread QObject::setParent: Cannot set parent, new parent is in a different thread QObject::setParent: Cannot set parent, new parent is in a different thread QObject::setParent: Cannot set parent, new parent is in a different thread QObject::setParent: Cannot set parent, new parent is in a different thread QObject::setParent: Cannot set parent, new parent is in a different thread QObject::setParent: Cannot set parent, new parent is in a different thread QObject::setParent: Cannot set parent, new parent is in a different thread gggg QObject::setParent: Cannot set parent, new parent is in a different thread QObject::setParent: Cannot set parent, new parent is in a different thread QObject::setParent: Cannot set parent, new parent is in a different thread QObject::setParent: Cannot set parent, new parent is in a different thread QObject::setParent: Cannot set parent, new parent is in a different thread QObject::setParent: Cannot set parent, new parent is in a different thread QObject::setParent: Cannot set parent, new parent is in a different thread QObject::setParent: Cannot set parent, new parent is in a different thread gggg QObject::setParent: Cannot set parent, new parent is in a different thread QObject::setParent: Cannot set parent, new parent is in a different thread QObject::setParent: Cannot set parent, new parent is in a different thread QObject::setParent: Cannot set parent, new parent is in a different thread QObject::setParent: Cannot set parent, new parent is in a different thread QObject::setParent: Cannot set parent, new parent is in a different thread QObject::setParent: Cannot set parent, new parent is in a different thread QObject::setParent: Cannot set parent, new parent is in a different thread gggg ............................................. Сообщение отредактировал eldar85 - 25.6.2010, 10:15 |
|
|
Текстовая версия | Сейчас: 28.1.2025, 15:36 |