Russian Qt Forum

Qt => Общие вопросы => Тема начата: Demonn от Ноябрь 29, 2005, 16:00



Название: QThread - TaskManager показывает 99% загрузки
Отправлено: Demonn от Ноябрь 29, 2005, 16:00
Добрый день!
Программа использует наследника QThread для получения event'ов от PosgtreSQL. При этом загрузка процессора в TaskManager'е показвается 99%. Пробовал в теле потока вызывать QApplication::eventLoop()->processEvents(QEventLoop::ExcludeUserInput) - не помогает. Что делаю не так?

Вот код метода run():
Код:
void dbEventsThread::run() {
  done = false;
  int socket = PQsocket(fConnection->connection);

  while (!done) {
    PQconsumeInput(fConnection->connection);
    while ((fNotify = PQnotifies(fConnection->connection)) != NULL) {
      sendEvent(fNotify->relname);
      PQfreemem(fNotify);
    }

    QApplication::eventLoop()->processEvents(QEventLoop::ExcludeUserInput);
  }
}

P.S. QT 3.3.3 + VC++ 6.0


Название: QThread - TaskManager показывает 99% загрузки
Отправлено: Racheengel от Ноябрь 29, 2005, 16:55
добавь в конец цикла sleep(1)
поможет


Название: QThread - TaskManager показывает 99% загрузки
Отправлено: Demonn от Ноябрь 29, 2005, 17:01
> Racheengel
Спасибо!