急问一个基础问题,我这样的思路是否有问题
控制台程序:
void main()
{
CreateNewThread(TRUE);//建立一个新的线程
char ch;
while(1)
{
printf("测试,按Q键退出");
ch = _getch();//如果没有用户输入,就将CPU控制权交给其他线程
case 'Q':
goto out_exit;
return nRetCode;
}
}
上面的程序CPU占用率很低,程序运行也很正常,改成对话框程序,在一个BUTTON事件中:
void mydlg::OnButton1()
{
CreateNewThread(TRUE);//建立一个新的线程
while(1)
{
Sleep(100);//将CPU控制权交给其他线程
}
}
这个做法是CPU占用率也不高,按钮按下后应用程序在工作,但是对话框没有响应,鼠标一直是漏斗状
我有两个问题:
1、为什么在控制台下那样的做法把CPU的控制权交给建立的线程是可以的,而对话框程序不行,对话
框程序要实现控制台那样的效果该怎么做?
2、为什么新建的线程CreateNewThread(TRUE)没有立即运行,而是要等到ch = _getch()之类的语句才
开始处理线程的代码?