CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  网络通信/分布式开发

多线程查找局域网文件的问题

楼主Uranuz(沙子)2002-10-20 14:29:12 在 Delphi / 网络通信/分布式开发 提问

我做了一个多线程查找局域网上的文件的程序,是用枚举每个计算机的办法!但通常有一两个线程可能因为远程计算机响应慢的原因迟迟不返回,且占尽CPU时间,又很占内存,怎样解决?请高手指点! 问题点数:100、回复次数:7Top

1 楼zhujunfeng(ericss)回复于 2002-10-21 15:48:55 得分 15

设置超时,到时候自己结束掉,然后重起一个线程Top

2 楼Uranuz(沙子)回复于 2002-10-21 18:59:28 得分 0

但我不知如何在线程中用timer控件,可不可以再比点意见?Top

3 楼hongqi162(失踪的月亮)回复于 2002-10-22 08:51:23 得分 5

gzTop

4 楼strongq(火血狼)回复于 2002-11-08 15:08:04 得分 0

upTop

5 楼strongq(火血狼)回复于 2002-11-08 15:10:34 得分 30

(但我不知如何在线程中用timer控件)  
   
  你可以在循环体里得到当前时间,然后再与开始的时间比较。  
  Top

6 楼ChipHead(满脑袋芯片和程序的人)回复于 2002-11-08 16:04:59 得分 25

设置一个控制线程,登记每个线程的启动时间,如果运行了太长的时间就发一个Terminate调用给工作线程要求它结束;每个工作线程定期检查控制线程发来的信号(例如每检查一个文件是否符合搜索条件后检查Terminated属性),如果Terminated   =   True那么就不再继续搜索远程计算机。  
   
  如果工作线程在超时之前就已经结束工作,需要通知控制线程不必检查自己是否超时,否则因为FreeOnTerminate属性默认是True,如果工作线程已经结束工作,那么就自己释放了,这时控制线程发现它超时,再调用Terminate时会出Access   Violation。Top

7 楼ChipHead(满脑袋芯片和程序的人)回复于 2002-11-08 16:07:45 得分 25

线程占尽CPU时间不一定因为远程计算机响应慢,很可能是因为你没有在Execute当中加入适当的Sleep(10)之类的调用。如果线程不断地执行循环而没有一定的Sleep时间,经常会出现独占CPU的情况。Top

相关问题

  • 多线程下载文件
  • 多线程下载文件
  • 局域网文件传送
  • 局域网传输文件
  • 局域网文件传输
  • 如何从DOS下查找局域网上其他机子上的GH OST文件?
  • 求教:怎样在局域网中查找另外一台机器的视频文件,并播放??????
  • 通过多线程扫描局域网内的所有机器怎么实现?
  • 通过多线程扫描局域网内的所有机器怎么实现?
  • VB.NET中如何使用多线程扫描局域网中的计算机???????

关键词

  • 线程
  • 文件
  • 检查
  • 远程
  • 计算机
  • 控制
  • cpu
  • 超时
  • 调用
  • 远程计算机

得分解答快速导航

  • 帖主:Uranuz
  • zhujunfeng
  • hongqi162
  • strongq
  • ChipHead
  • ChipHead

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo