VC程序卡机?

来源:百度知道 编辑:UC知道 时间:2024/07/01 07:32:19
我写了一个小程序,里面为按扭响应函数start(),而start()里面有个while循环发送数据,是不是因为循环没完不返回就一直卡在这,界面上就动不了,点不了其他按纽了,不占CPU???为什么界面上其他的都卡住了
但是我那函数是void 类型,不返回啊,这个什么道理,谁遇到过,解释下,谢谢

哦,这样啊,那我把它放一线程里面应该没问题了吧

你的界面线程去执行while循环了 当然做不了其他的事情了(响应消息)
可以考虑多线程

http://www.vckbase.com/document/viewdoc/?id=1704
编写一个耗时的单线程程序:

新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下:

void CSingleThreadDlg::OnSleepSixSecond()
{
Sleep(6000); //延时6秒
}

编译并运行应用程序,单击“延时6秒”按钮,你就会发现在这6秒期间程序就象“死机”一样,不在响应其它消息。为了更好地处理这种耗时的操作,我们有必要学习——多线程编程。