在程序中,设备异步不停的发送信息上来,我将接收到的信息存至一个TList中存放,并且使用了TRTLCriticalSection,另一个线程A也是不停的在执行,当判断这个TList.Count 大于0时,就将信息取出,进行分析后存至数据库。当然,这里也用到了临界区。但现在有这样的一个问题,程序运行了几天之后(有时候是一天,有时候是两三天),线程A就不执行操作了。我查看过,那个TList的count不断在上升,而线程A就是不处理
解决方案 »
- ★类中前面没有可见性描述的字段的可见性是什么?
- 如何实现每页打印标题,我用的是QuickRep。高分请都高手。
- wise如何执行外部程序?
- 急:做ASP上传文件组件怎么样才能加快读取Request对象数据的速度?
- Row cannot be located for updating. Some values may have been changed since it was last read.
- 关于网络速度的监控?
- dbgrid的数据源指向另一窗体的刷新问题
- 新手请教一个问题,谢谢!请进->
- Timer在 Win98/me下与Win200下,速度为什么不一样???
- delphi+sql server UpdateBatch出错
- 游戏服务端程序--delphi开发
- delphi如何将邮件信息发送到手机上?
或者你试试线程同步或锁或者自己定义一个WaitFor
还有这里,你是不是一次只处理了一条?只处理一条的话肯定会有遗留下来的
while not Terminated do
begin
end;
那个队列是通过设备回调函数传上来的数据增加进去的。就算我只处理一条也没关系的啊,我从这队列取出一条赋给一个变量,然后就从这个队列里删了它的。然后再慢慢去处理这条数据的
我这个线程调用那个过程的时候才有更新数据和界面的,这也需要加Synchronize吗?
如果挂起了,那又要如何判断和恢复?