![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
flareguner |
![]()
Сообщение
#21
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 16.11.2009 Пользователь №: 1231 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
BRE |
![]()
Сообщение
#22
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
Если речь о новом процессе, то какая разница? Камрад flareguner запускает новый поток вызовом метода run, т.е. новый поток не создается вообще. А разве не run()-ом я его запускаю в файле video_converter.cpp? ![]() run это тело потока, а для того что бы он запустился в отдельном потоке, нужно его запускать через start(). |
|
|
flareguner |
![]()
Сообщение
#23
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 16.11.2009 Пользователь №: 1231 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Цитата Что если запустить mencoder через утилиту nice, с пониженным приоритетом? Да еще и QThread setPriority() пониже выставить? Это тоже мысль. Сейчас опробую. |
|
|
SABROG |
![]()
Сообщение
#24
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
Всё, нашел:
flareguner, я ж просил все исходники выложить. Вторую ссылку не заметил ![]() Цитата Это тоже мысль. Сейчас опробую. Да не поможет. Твоя проблема в waitForFinished(), он блокирует основной цикл событий, так как ты запустил поток через run(), а не через start(). |
|
|
flareguner |
![]()
Сообщение
#25
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 16.11.2009 Пользователь №: 1231 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Если речь о новом процессе, то какая разница? Камрад flareguner запускает новый поток вызовом метода run, т.е. новый поток не создается вообще. А разве не run()-ом я его запускаю в файле video_converter.cpp? ![]() run это тело потока, а для того что бы он запустился в отдельном потоке, нужно его запускать через start(). Вот это я облажался. Ну что же, больше всем вам спасибо что помогли и не поленились разгребать пионерский г-нокод. ![]() |
|
|
DEADHUNT |
![]()
Сообщение
#26
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
SABROG |
![]()
Сообщение
#27
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
это уже не запуск, а простой вызов метода. только тогда не понятно зачем QThread использовать. Так и есть. Интересно почему тролли не поместили метод run() в protected секцию, тогда бы можно было бы его спокойно наследовать и при этом невозможно было бы его вызвать за пределами класса QThread и наследников, а только через start(). Брр, ничего не понимаю, он в protected секции. Почему-то его возможно вызвать ![]()
Вопрос к знатокам C++, возможно ли создать класс с protected членами, которым бы невозможно было бы поменять спецификатор доступа при наследовании? Теоретически можно сделать run() чистой виртуальной функцией с private спецификатором доступа. Вот только наследование от QObject'a может не дать это сделать. Сообщение отредактировал SABROG - 8.3.2010, 23:37 |
|
|
flareguner |
![]()
Сообщение
#28
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 16.11.2009 Пользователь №: 1231 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
это уже не запуск, а простой вызов метода. только тогда не понятно зачем QThread использовать. Так и есть. Интересно почему тролли не поместили метод run() в protected секцию, тогда бы можно было бы его спокойно наследовать и при этом невозможно было бы его вызвать за пределами класса QThread и наследников, а только через start(). Брр, ничего не понимаю, он в protected секции. Почему-то его возможно вызвать ![]()
Вопрос к знатокам C++, возможно ли создать класс с protected членами, которым бы невозможно было бы поменять спецификатор доступа при наследовании? Теоретически можно сделать run() чистой виртуальной функцией с private спецификатором доступа. Вот только наследование от QObject'a может не дать это сделать. вроде макрос Q_OBJECT делает что-то подобное. |
|
|
SABROG |
![]()
Сообщение
#29
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
flareguner |
![]()
Сообщение
#30
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 16.11.2009 Пользователь №: 1231 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
вроде макрос Q_OBJECT делает что-то подобное. Если тролли поменяют объявление метода run() на такое, то возможно ошибок будет меньше:
Может я что-то путаю, но разве можно в дочернем классе переопределять private-элементы? Вроде бы только protected. |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 18.2.2025, 18:10 |