程序未响应了

youmosheng 2010-09-29 09:59:39
最近在写个小程序!就是idhttp读取新浪的股票页面源文件,然后用正则表达式将其中的相关数据匹配出来导入到数据库里面去。程序是写完了,但是运行期间界面就未响应了,我想是数据量太大的原因!界面未响应了倒也没事,毕竟程序还在运行,下载流量也不断的在保持,数据库中的记录也在不断增加,怕的就是中途下载流量没了,数据库中的记录也定格了,idhttp中的get函数的异常我也写了,程序就死在那了!请大家帮忙解决下问题。
...全文
120 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzbinfo 2010-09-30
  • 打赏
  • 举报
回复
你说的停到get就对了,因为get的时候受网络环境等影响,这个时候程序执行的时候返回的很慢,通俗点说就是执行get这个函数的时候,这个get函数一直没有返回,要等到获得数据后才返回,并没有出错异常。所以你的catch抓不到,你把你的这部分代码单独放到一个线程中执行就不会影响主线程的响应了。具体怎么用多线程你先查一下资料,bcb下有个线程类,用起来还是很简单的
ccrun.com 2010-09-29
  • 打赏
  • 举报
回复
将这些操作放在另外一个线程中执行。
youmosheng 2010-09-29
  • 打赏
  • 举报
回复
波波!我下午在程序中设置了一些标志,在运行期间把这些标志都写到了INI文件了,每次程序死的时候我去看ini文件发现都是停在了idhttp->get()这个点上,但是我已经对这个语句进行了异常处理了,我想可能是这个异常不在CB默认的异常处理中,我用的catch(...).
您说的idhttp这里的组件都是阻塞的是啥意思呢??很无知的问下。
再就是我很菜,单独放到一个线程里面怎么去操作。
期待你的回答!
zzbinfo 2010-09-29
  • 打赏
  • 举报
回复
idhttp这里组件都是阻塞的,执行的时候是会影响主线程的响应的,像妖哥说的,把这部分代码单独的放到一个线程里面执行就可以了
youmosheng 2010-09-29
  • 打赏
  • 举报
回复
请问妖哥我怎么才能找出问题的根源!即问题出现在程序的哪一块?

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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