Russian Qt Forum
Ноябрь 24, 2024, 00:28 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Почему sleep() в потоке блокирует предшествующий вывод в консоль ?  (Прочитано 2168 раз)
Alf
Гость
« : Сентябрь 26, 2013, 13:00 »

Консольное приложение.
Класс Thread унаследован от QThread. Функция void run() реализована следующим образом:

Код:
void Thread::run()
{
    QTextStream out(stdout);
    out << "Thread HANDLE is " << currentThreadId();

    while (true) {
        sleep(1);
    }
}

Код:
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);

Thread thread;
thread.start();

app.exec();

return 0;
}

Почему в данном случае в консоль не выводится нужная информация ?
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #1 : Сентябрь 26, 2013, 14:14 »

потому что буферизируется. Пробуй out.flush();
Записан
Alf
Гость
« Ответ #2 : Сентябрь 26, 2013, 14:33 »

Точно, помогло ! Спасибо !
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 22.