1

Необходимо сделать итерации цикла с опр. временным интервалом (в миллисекундах)
так же необходима кросплатформенная реализация
выбор пал на Qt... есть по манам там такой интересный класс... QThread
есть обстрактный класс (snature), который является одним из родительских классов
вторым собственно является QThread

class qnature: public snature, public QThread{
private:
void mssleep(uint time);
public:
    qnature();
    void run(uint t);
    ~qnature();
};

переопределёная run содержит в себе вызов метода класса snature, где есть вызов виртуальной функции mssleep (которая реализуется в qnature) и содержит вызов метода QThread msleep()

собственно вопрос... почему у меня засыпает основной поток с GUI???

2

Как правило, засыпает тот поток в котором вызвана функция sleep. Вы ее наверное в основном вызываете.

3 (28.02.2010 02:14:00 отредактировано )

я вызываю функцию run
как я понял при создании экземпляра класса QThread должен создаваться новый поток
а run содержит в себе код, который должен выполняться в отдельном потоке (опять же как я понял)
следовательно все вызовы внутри run должны быть в отдельном и msleep так же должен относиться к отдельному (метод именно QThread, а не стандартный sleep)

зы не использую sleep потому что нужна задержка в миллисекундах

тему можно закрыть)))
функцию нужно было переопределять по прототипу, тоесть void run(), а я переопределил как void run(stm t)
из-за этого run не вызывалась при вызове start....

ps ошибся насчёт создания потока... создаётся при вызове start()