多线程操作数据库-请认真阅读问题内容哦!!!!

22222bbb 2016-08-09 04:16:58
始终有10个线程在执行相应操作,如果线程结束了会自动创建新的线程进来,始终保持有这么多线程,每个线程完成后通过 sendMessage把数据传给主窗口进行处理,起初用memo把这些数据一笔笔显示出来并没有任何问题,但现在是有一个ado连接着数据库并且关联了dbgrid,每接收到一笔就要插入进这个表,我用的是 append, post, 不知道为什么程序主界面会没有响应,请大虾指点!
是否是消息发送太快了?每个线程一次大约会发送10条左右数据,每一条数据就 sendmessage一次
...全文
410 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jjpweb 2016-08-09
  • 打赏
  • 举报
回复
消息积压,还不如弄个timer定时刷新来的靠谱。
我看见佛 2016-08-09
  • 打赏
  • 举报
回复
引用 楼主 mrwangfei 的回复:
始终有10个线程在执行相应操作,如果线程结束了会自动创建新的线程进来,始终保持有这么多线程,每个线程完成后通过 sendMessage把数据传给主窗口进行处理,起初用memo把这些数据一笔笔显示出来并没有任何问题,但现在是有一个ado连接着数据库并且关联了dbgrid,每接收到一笔就要插入进这个表,我用的是 append, post, 不知道为什么程序主界面会没有响应,请大虾指点! 是否是消息发送太快了?每个线程一次大约会发送10条左右数据,每一条数据就 sendmessage一次
如果是我,我会改为10个进程,创建后不释放,不用时挂起,sendMessage是可行的。不过尽量不术太频繁,加到延时阿,骚年
lyhoo163 2016-08-09
  • 打赏
  • 举报
回复
进程中不宜对VCL操作,会出现无反应的情况。

2,496

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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