MFC在ontimer中使用Sleep导致点击后程序无响应

做一个排序演示,排序在ontimer中,在排序每一步有一个sleep,,程序运行后能正常排序,但是如果点击其它地方,比如菜单或者绘图区域就会导致程序无响应。settime... 做一个排序演示,排序在ontimer中,在排序每一步有一个sleep,,程序运行后能正常排序,但是如果点击其它地方,比如菜单或者绘图区域就会导致程序无响应。
settimer(1,1000,null);
ontimer()
{
if(....)
{
paixu1
}else if(....)
{
paixu2
}
else if(..)
{
paixu3
}
}
展开
 我来答
bhtzu
2014-10-23 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4190万
展开全部
还没解决?
把paixu1的完整代码贴上来吧。
定时器中不应该使用sleep,应该是你的程序逻辑有问题。
更多追问追答
追问

字数太多,所以发的图片

追答
  1. 这样的写法,完全没必要使用定时器,使用了和没使用没有任何区别。

  2. 一个在主线程中的超长时间任务,必然会导致界面无响应。

  3. 解决这个问题,要么通过定时器拆分整个循环,重新实现程序逻辑,每次定时器只画一个DrawArray,要么做子线程,在线程中完成这个事务。(前者相对简单)

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式