Подождать секунду

216
12 декабря 2017, 19:56

Как можно в с++ без использования функции Sleep(1000) подождать одну секунду, а если конкретнее - эту секунду высчитать без заморозки интерфейса.

Answer 1

Обычно запускается (::CreateThread) один поток, в котором работает интерфейс и второй поток в котором идет отсчёт времени. Оба потока общаются друг с другом с помощью IPC (межпроцессного взаимодействия), например через сигналы или сообщения.

В рамках одного потока можно попробовать (в Windows) задержку через таймер сделать (::SetTimer) и отлавливать сообщения WM_TIMER

Answer 2

GetTickCount(), например, считает в миллисекундах. Запомнив первый раз считанное значение и сравнивая последующие считывания, можно определить, сколько прошло времени. 1000 миллисекунд даст 1 секунду.

READ ALSO
Побитовый сдвиг числа Double C++

Побитовый сдвиг числа Double C++

Приветствую! Я начинающий программист, поэтому, если вопрос "детский" - не стоит врубать быкаЕсть лабораторка, в которой нужно выполнить XOR шифрование...

705
Проверка числа на четность (с++)

Проверка числа на четность (с++)

Есть код, который представлен нижеНужно переделать его с использованием функции для проверки четности введенного числа

316
Неправильное выставление уровня UAC

Неправильное выставление уровня UAC

Проект на C++ собирается Visual Studio 2015UAC Execution Level выставлен в asInvoker, но почему-то 32-битная версия приложения требует права администратора, а 64-битная...

220
Как объявить глобальный массив С++

Как объявить глобальный массив С++

Здравтсвуйте! Как объявить массив глобыльно, что бы можно было в него записывать и обращаться из всех cpp? Пробовал сделать так

243