一个关于循环的问题..

路过路人乙 2014-07-08 12:10:45
手上的一个小程序是根据UDP通信来同步数据的.

通讯.取数.读取这些没什么..关键是在单片机上存储了多个文件...同步程序是要求自动进行的..

那肯定是一个一个文件的取..每个文件里面又包含几百至几千不等的数据记录..

我现在获得了文件数据数..再依次遍历文件..读取每个文件里保存的数据记录..

问题就在这..我遍历文件数的时候是一个FOR循环不停的发送指令..但是文件里面的数据记录不可能秒存..这个时候在外面文件数的for循环里面必须在取文件里包含的记录数的时候暂时中止..直到我将这个文件里面所包含的文件记录数据全部存入数据库..

如何做到暂时中止for循环..等待存储过程完毕呢...由于UDP仅仅只是发送命令..所以我没办法将存储步骤放入for循环内部...

for(文件总数)
{
读取每个文件的标记

UDP发送指令读取该文件

根据返回指令取得该文件的记录数.返回指令是在UDP的事件中获得.FOR循环只管发指令而已.下个读取文件记录的FOR循环是在外部完成.只是为了方便逻辑讲述放在此循环内一起说明.

for(文件记录数据)
{
每次获取文件中4条数据.并存储.然后再次发送取记录的指令.直到本文件所有记录读取完毕
}

}
...全文
95 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
路过路人乙 2014-07-08
  • 打赏
  • 举报
回复
引用 1 楼 ccrun 的回复:
循环内部加一句: Application->ProcessMessages();
妖哥.外部是文件数量循环..内部是文件组数循环..组数循环里面还有每4条一次的取数存储循环...基本上是嵌套3次循环..而且每次循环都仅仅只是发送指令后等接受到指令来确定是做哪一步操作..这个函数用来等待响应能做到这步啊..是否是我这3个循环里都需要加入这一步...
ccrun.com 2014-07-08
  • 打赏
  • 举报
回复
循环内部加一句: Application->ProcessMessages();
ccrun.com 2014-07-08
  • 打赏
  • 举报
回复
引用 2 楼 HelpToMe 的回复:
妖哥.外部是文件数量循环..内部是文件组数循环..组数循环里面还有每4条一次的取数存储循环...基本上是嵌套3次循环..而且每次循环都仅仅只是发送指令后等接受到指令来确定是做哪一步操作..这个函数用来等待响应能做到这步啊..是否是我这3个循环里都需要加入这一步...
如果这些操作不涉及UI,可以考虑用多线程,线程内根据需求,做适当的延时(等待外部某些条件的完成)
dataxdata 2014-07-08
  • 打赏
  • 举报
回复
耗时的操作最好放在一个单独的线程中

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧