Выполнение произвольной фунции в отдельном потоке |
Здравствуйте, гость ( Вход | Регистрация )
Выполнение произвольной фунции в отдельном потоке |
kuler |
29.10.2008, 14:07
Сообщение
#21
|
Танцор диско Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: -1 |
|
|
|
Litkevich Yuriy |
29.10.2008, 14:24
Сообщение
#22
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
очепятался немного
idle - простой/ничего не деланье |
|
|
Tonal |
1.11.2008, 13:56
Сообщение
#23
|
Активный участник Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17 |
|
|
|
Fandorin |
19.4.2010, 19:25
Сообщение
#24
|
Студент Группа: Новичок Сообщений: 10 Регистрация: 19.4.2010 Пользователь №: 1642 Спасибо сказали: 0 раз(а) Репутация: 0 |
Прочитал я дисскусию и понял, что дискуссию забросили. Так может быть кто нибудь поделится универсальным методом запуска отдельного потока без зависания GUI. В QT 4.6.2 есть класс Qt::Concurrent, который позволяет запускать произвольную функцию в отдельном потоке. Однако тут есть проблема - число аргументов функции не может быть больше 5. Вот кусок кода, после которого GUI виснет наглухо.
Раскрывающийся текст
|
|
|
ViGOur |
19.4.2010, 19:47
Сообщение
#25
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
А попробуй данный пример:
"QtConcurrent Progress Dialog Example"
|
|
|
Fandorin |
19.4.2010, 19:51
Сообщение
#26
|
Студент Группа: Новичок Сообщений: 10 Регистрация: 19.4.2010 Пользователь №: 1642 Спасибо сказали: 0 раз(а) Репутация: 0 |
Да, спасибо, я видел этот пример. Но допустим мне пока не нужно диалог прогресса. Мне нужно, чтобы просто отвечал интерфейс при выполнении долгого вычисления. Если убрать f1.waitForFinished() GUI отвечает. Однако остается открытый вопрос - что если число параметров равно 6 или более?
|
|
|
ViGOur |
19.4.2010, 20:19
Сообщение
#27
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Однако остается открытый вопрос - что если число параметров равно 6 или более? В таком случае думаю правильней будет создать класс произвольный от QThread и работать уже с ним...Или как вариант создать структуры, а в ней уже твои параметры. И передавать уже объект структуры. |
|
|
Litkevich Yuriy |
19.4.2010, 20:29
Сообщение
#28
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Fandorin |
19.4.2010, 20:32
Сообщение
#29
|
Студент Группа: Новичок Сообщений: 10 Регистрация: 19.4.2010 Пользователь №: 1642 Спасибо сказали: 0 раз(а) Репутация: 0 |
QList<QVariant> и его уже передавать Наш ответ. Теперь параметры - не проблема) Спасибо всем за помощь)
|
|
|
Текстовая версия | Сейчас: 20.4.2024, 9:28 |