Пишу программу, которая получает на ввод текст. Если я ничего не пишу, то через n секунд на экран вылетает сообщение о моём бездействии. Как можно реализовать такой таймер, который будет включаться после ввода каждой буквы?
Ответ
#pragma warning(disable: 4996)
#include
using namespace std;
const int how_many_seconds_should_go = 2;//Интервал проверки 2 секунды
bool bTimerSec(time_t start_time, const int& how_many_seconds_should_go)
{
return time(0) == start_time + abs(how_many_seconds_should_go);
}
void checkThread(LPVOID param)
{
bool bFlag = false;
int time_;
while (true)
{
if (!bFlag)
{
time_ = time(0);
bFlag = true;
}
else
{
if (bTimerSec(time_, how_many_seconds_should_go))
{
MessageBox(0, "Вы бездействуете!", "", 0);
return;
}
}
Sleep(1);
}
}
int main() {
string s;
HANDLE hThread = 0;
while (cin >> s)
{
if (hThread)
{
TerminateThread(hThread, 0);
}
hThread = CreateThread(0, 0, (LPTHREAD_START_ROUTINE)checkThread, 0, 0, 0);
}
while (true)
{
Sleep(1);
}
return 0;
}
Комментариев нет:
Отправить комментарий