首页
社区
课程
招聘
[求助] 定时器时间过短遇到的问题
发表于: 2011-6-23 16:23 4409

[求助] 定时器时间过短遇到的问题

2011-6-23 16:23
4409
遇到这样一个问题,想和大家分享一下:

      定义了一个10毫秒的定时器,定时器的响应操作时进行一些列的描画,该描画过程大概需要30毫秒。由于描画过程的时间大于定时器的时间,所以会发生一次描画未结束的时候,下一次定时器时间又到的问题。

       想和各位讨论一下,该如何修正?

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 123
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
最土的办法:

bool a;

timerproc
{
if(a)
  return;

a = true;

your code

a = false;

}
2011-6-23 16:48
0
雪    币: 247
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
定义大点的时间,
或者定义一个bool 全局变量
进入绘画函数,设置成true,出绘画设置成false

在定时器函数里,如果变量为true 什么都不做。
2011-6-23 17:04
0
雪    币: 6771
活跃值: (2595)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
第一,
定时器时间长点儿。

第二:
添加一个变量,判断是否完成绘制,如没有完成绘制则延时定时器,或者定时器时间增加。
2011-6-23 17:12
0
雪    币: 113
活跃值: (100)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
印象中一般定时器的精度是55ms,小于这个值就需要使用特别的定时器了。
解决方案楼上的都说了。这就是一般的编程思路。
2011-6-23 23:01
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
是多线程还是单线程?
单线程的话,应该是一直等待描画完成后.,才从队列中获取下一次Timer消息.
2011-6-23 23:50
0
雪    币: 1085
活跃值: (114)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
7
是单线程。

同意你的观点。

这不是问题,是我想多了。
2011-6-24 14:04
0
雪    币: 1085
活跃值: (114)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
8
楼上的几位提出的添加flag标志位的方案也很好。

我也采用了。

谢谢以上诸位。
2011-6-24 14:06
0
游客
登录 | 注册 方可回帖
返回
//