многопоточность 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, 20:10
Сообщение
#2
|
программист Группа: Участник Сообщений: 283 Регистрация: 2.1.2010 Из: Москва Пользователь №: 1348 Спасибо сказали: 0 раз(а) Репутация: 0 |
все работает отлично, вот только еще с одним бы разобраться, допустим я запустил десять потоков в таком плане
так вот, в текстовое поле все выводиться лишь после того как все потоки закончатся, а нельзя ли сделать так чтобы поток выполнил свое действие и вывел на экран свое значение, и так далее, а то к примеру у меня один поток может выполняться 2 секунды, а другой возможно несколько минут и тогда получиться что они друг друга будут ожидать пока все не закончаться, а если их сделать 20...100 то вообще как то будет не к стати... может знаете как так сделать??? я тут в цикле специально секунду поставил ожидание, чтобы посмотреть как будет выводиться и вот и вышло что пока не пройдет 10 сек то на текстовое поле нифига ничего не выводиться... только когда все потоки все сделают... Сообщение отредактировал eldar85 - 25.6.2010, 20:11 |
|
|
Текстовая версия | Сейчас: 15.1.2025, 7:43 |