многопоточность 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 |
11.6.2010, 1:16
Сообщение
#2
|
программист Группа: Участник Сообщений: 283 Регистрация: 2.1.2010 Из: Москва Пользователь №: 1348 Спасибо сказали: 0 раз(а) Репутация: 0 |
но мне нужно чтобы каждый поток работал с функцией makeFunktion(QString q1, QString q2) ; но с разными переменными, например мне нужно передать в функцию makeFunktion(QString q1, QString q2) ; два параметра, но в каждом потоке они должны быть разными. значит run() вызывать вообще не нужно, хммм))) ок, буду пробывать, потому что так как я сделал прога вылетает))) спасибо за совет, попробую отпишусь)
но в метод run() { //я же могу что угодно накидать для выполнения? правильно? } а я правильно в цикле потоки вызываю если оттуда метод run() убрать из цикла? или каждый поток должен называться по разному???
я хочу сделать чтобы с главного окна можно было в спинбоксе поставить сколько потоков будет работать. и соответственно не могу каждый поток подписать так: Thread thread1; Thread thread2; Thread thread3; ...... потому что точно не знаю сколько поставлю потоков, возможно захочу 2, а возможно 10... ну это так к слову, мне бы научиться их вызывать, весь гугл перерыл, но кругом описано как сделать две кнопки и чтобы нажал одну пошел первый поток, нажал вторую пошел второй поток... мне нужно в цикле их запускать ... попробывал не вызывать метод run() прога тут же вылетает.
ставлю ожидание в секунду, так как при выполнении операций там и больше могут задержки быть, и сразу вылетает. |
|
|
Текстовая версия | Сейчас: 15.1.2025, 7:54 |