Здравствуйте, гость ( Вход | Регистрация )
BRE | Дата 10.11.2011, 16:58 |
exec никуда не возвращает, она просто запускает цикл обработки событий для данного потока. Выйти из этого цикла позволяет метод quit или exit класса QThread. А... Начинает доходить. Т.е. по сути exec() запустить в теле run(). А затем с помощью сигналов и слотов выполнить нужные мне действия. Так ведь можно решить? Да можно и так, только есть ли смысл постоянно крутить цикл обработки событий (который много чего делает) только для того, что бы получить очередное задание. |
|
AD | Дата 10.11.2011, 16:40 |
exec никуда не возвращает, она просто запускает цикл обработки событий для данного потока. Выйти из этого цикла позволяет метод quit или exit класса QThread. А... Начинает доходить. Т.е. по сути exec() запустить в теле run(). А затем с помощью сигналов и слотов выполнить нужные мне действия. Так ведь можно решить? |
|
BRE | Дата 10.11.2011, 16:36 |
exec никуда не возвращает, она просто запускает цикл обработки событий для данного потока. Выйти из этого цикла позволяет метод quit или exit класса QThread. |
|
AD | Дата 10.11.2011, 16:26 |
Пытаешься написать методом научного тыка? Да нет. Просто никак не могу понять, зачем этот exec(), если я не возвращаюсь в поток? Понятное дело, что после нескольких попыток в итоге сделаю по другому, но хотел разобраться, как заставить вернуться в функцию run правильно? |
|
BRE | Дата 10.11.2011, 16:19 |
Пытаешься написать методом научного тыка? |
|
AD | Дата 10.11.2011, 15:47 |
А вот так в поток не попадаю вторично:
Поток запускаю в главном потоке в конструкторе. |
|
Iron Bug | Дата 10.11.2011, 15:38 |
дык, в безусловном цикле крутится - потому и жрёт. любой поллинг жрёт проц. тебе же про условные переменные говорили - вот и примени их, чтобы было условие, что в очереди что-то появилось, а в рабочем потоке - ожидание этого условия. |
|
AD | Дата 10.11.2011, 15:30 |
"Память жрет" это ты про "процессор жрет"? Что такое функция wait, как она определена? А лучше ты все покажи. Да, проц жрет. wait - функция QThread. Так у меня это одна функция в Qthread. |
|
BRE | Дата 10.11.2011, 15:27 |
"Память жрет" это ты про "процессор жрет"? Что такое функция wait, как она определена? А лучше ты все покажи. |
|
AD | Дата 10.11.2011, 14:22 |
Из главного потока запустил дополнительный. В дополнительном у меня вечный цикл (forever) - памяти жрет 50%. Есть возможность, не отменяя цикла forever сделать так, чтобы память не жралась безмерно? С потоками уже не раз работал, но еще ни разу не использовал forever в доп. потоке, потому такие вопросы и встают. Пока что делаю так (память жрет):
|
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 29.3.2024, 10:20 |