按ESC键结束线程的问题
下面这段代码是VS2010控制台下写的按ESC结束创建的线程
可按下ESC后,最后一句“线程已结束”为何不会输出到屏幕上,
单步的时候可以运行到那一句的,可也不会显示在屏幕上
是什么原因?
可按下ESC后,最后一句“线程已结束”为何不会输出到屏幕上,
单步的时候可以运行到那一句的,可也不会显示在屏幕上
是什么原因?
#include <iostream>
#include <Windows.h>
#include <stdio.h>
using namespace std;
DWORD WINAPI ThreadFunc(LPVOID lParam)
{
cout<<"线程开始运行"<<endl;
while(true)
{
cout<<"线程运行中.."<<endl;
}
return 0;
}
int main()
{
//创建线程
DWORD threadId;
HANDLE hTread = CreateThread(NULL,0,ThreadFunc,NULL,0,&threadId);
//判断是否按下了ESC,如果按下,终止线程
HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE);
INPUT_RECORD irInBuf[1];
DWORD cNumRead;
while(true)
{
ReadConsoleInput(hStdin,irInBuf,1,&cNumRead);
if(irInBuf[0].Event.KeyEvent.bKeyDown && irInBuf[0].Event.KeyEvent.wVirtualKeyCode == VK_ESCAPE)
{
cout<<"按下了ESC"<<endl;
TerminateThread(hTread,0);
break;
}
}
cout<<"线程已结束"<<endl;
//.....
return 0;
}
...全文
相关推荐
Ocx全屏,Esc退出
Ocx播放视频时,双击可以全屏,按下Esc退出按钮可以退出全屏 本人实践可以通过,如不能希望交流
屏蔽win键(包括Ctrl+Esc)模块+例程.rar
屏蔽win键(包括Ctrl+Esc)模块+例程.rar
生产者与消费者多线程案例
经典的生产者与消费者案例 添加了一个按ESC键结束多线程的功能。希望对同学有帮助~
CListCtrl--editable.zip_CListCtrl_clistctrl 编辑_list ctrl editabl
如何使CListCtrl完全可编辑,文章中给出了比较详细的步骤,对初学者有一点参考价值
Process Explorer V15.03 绿色汉化版
Process Explorer V15.03 绿色汉化版 进程管理器


