Проблема, с которой я столкнулся, заключается в том, что я решил реализовать QThreads
так, как они должны, основываясь на многочисленных статьях:
http://blog.qt. digia.com/blog/2010/06/17/вы-делаете-это-неправильно/
http://mayaposch.wordpress.com/2011/11/01/how-to-really-truly-use-qthreads -the-full-explanation/
и проблема заключается в том, что алгоритм запускается в отдельном QObject
(обернутом в QThread
). как я могу вызвать что-то вроде Thread::Sleep
или что-то еще.. Есть идеи?
Небольшое описание ПО.
В основном мое приложение решает TSP
(задачу коммивояжера). По ходу поиска он сохраняет все состояния в истории как кадры
... (как визуальные кадры).Алгоритмы поиска будут выполняться в одном потоке.
Основной поток обрабатывает графический интерфейс.
Затем существует поток, подобный Mediaplayer
, который сообщает потоку Main
, какой кадр отображать на экране. Так при чем здесь сон?
В графическом интерфейсе есть ползунок, который пользователь может использовать для быстрой перемотки вперед или в обычном темпе. Этот ползунок сообщает через сигнальный слот потоку Mediaplayer
, чтобы он двигался быстрее или медленнее.