关于多线程:一个用于GUI的主线程和一个实时处理控制台输入命令的控制线程

2025-05-14 11:24:47
推荐回答(1个)
回答1:

主线程处理WM_CLOSE时候告诉控制线程是时候退出了,然后控制线程跳出循环并退出

DWORD WINAPI CmdThrdProc(LPVOID arg)
{
string cmdstr;
while(isRunning)//主线程退出时把这个标识位设为false
{
getline(cin,cmdstr);//这里改为非阻塞的调用方式,具体查查api,看有没有peek之类的函数
//如果cin没东西可读,或者cmdstr为空,sleep几百毫秒
if(cmdstr=="pause") Pause=true;
else if(cmdstr=="start") Pause=false;
}
return 1;
}