Я хочу запустить отдельный поток, чтобы закрыть программу, когда пользователь нажимает определенный ключ. Это структура моей программы.Запустите нить, чтобы закрыть программу, когда пользователь нажимает конкретный ключ
#include <iostream>
#include <windows.h>
using namespace std;
DWORD WINAPI foo(LPVOID lpParameter)
{
//do something
return 0;
}
DWORD WINAPI boo(LPVOID lpParameter)
{
//do something
return 0;
}
int main(int argc, char **argv)
{
HANDLE foo1,boo1;
while(true)
{
foo1 = CreateThread(NULL,0,foo,NULL,0,NULL);
boo1= CreateThread(NULL,0,boo,NULL,0,NULL);
//do something
}
return 0;
}
Я создал две нити внутри всегда true while while, чтобы программа работала. Поэтому я хочу добавить еще один поток, чтобы получить пользовательский ввод всякий раз, когда пользователь нажимает клавишу (во время работы программы) и после сравнения с конкретным уже определенным символом, если они совпадают с программой.
Я понятия не имею, как это сделать. Может кто-нибудь мне помочь?
PS: Я должен сделать это, используя нити только :)
Зачем использовать потоки для чего-то простого? Это похоже на массовое перенапряжение. –
На самом деле меня попросили сделать это, используя потоки. Вот почему. – User9125
При создании потоков вы должны проверить, что дескриптор, возвращаемый вызовом CreateThread, действителен, в противном случае вы можете получить исключение доступа к памяти. После того, как вы закончите с потоками, вы должны закрыть дескрипторы с помощью функции CloseHandle. –