Я пытаюсь создать управляемую событиями программу из консоли, которая отображает время с момента запуска программы.
Я создал функцию:
WORD GetKey(HANDLE input)
{
INPUT_RECORD Event;
DWORD Read;
ReadConsoleInput(input,&Event,1,&Read);
if(Event.EventType == KEY_EVENT)
{
if(Event.Event.KeyEvent.bKeyDown)
{
return Event.Event.KeyEvent.wVirtualKeyCode;
}
}
return 0;
}
Затем я использовал его в основном цикле while (). Однако, когда я запустил программу, она запаздывает (задержка отображения часов составляет около 3-5 секунд). Что еще более странно для этой проблемы, когда я нажимаю и удерживаю клавишу «1», проблема с запаздыванием просто исчезла ..
WORD LastAction = GetKey(input) //this chunk of code lies in the main while(!quit)
switch(LastAction)
{
case VK_ESCAPE:
quit = true;
break;
case '1':
case VK_NUMPAD1:
break;
default:
break;
}
Это потому, что моего понимания ReadConsoleInput () недостаточно? или мой код не эффективен?
пожалуйста, сообщите мне по этому вопросу
ТНХ