c++builder的Timer事件问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 02:10:43
Timer的Interval为1000
ctime取当前时间
数据库中的记录有playtime字段
每秒都在判断ctime是否与playtime相等 如果相等的话将playtime所对应的记录复制到另一表中

问题:
我用一条记录做测试,当时间条件达到时,应该复制一条记录过去,但是却复制了两次

当我测试256条记录时,没有问题 复制了256条记录
我不知道如何能解决这种问题 好像是1秒内执行的太快

定义一个类变量,如nocopy来记录是否已经拷贝了,如:
//bool nocopy = false;
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
if(Ctime == Playtime)
{
if(nocopy) //如果字段条件满足且没有拷贝则拷贝
{
//copyrecord
}
}
else //如果字段不满足的设nocopy为true
{
nocopy = true;
}
}

即使用一个布尔型变量来记录是否已经拷贝,则不会重复拷贝。