如何提高我这个程序的执行效率?

yypp 2001-08-01 10:33:33
我写了一个信箱监控软件,就是根据用户设定的时间定时检查信箱里有没有有新信。
我用了5个Timer,可以同时监控5个信箱,现在的问题是软件在检查信箱的时候整个程序都失去响应,好象死掉了一样,要过很长一段时间才会恢复响应,我用了很多
Application.ProcessMessages 效果是很好

请问谁有过这方面的经验?
我这个程序该如何优化?

...全文
104 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
yypp 2001-08-02
  • 打赏
  • 举报
回复
现在问题已经确认,如果我在程序里设定5个信箱,并且让这5个信箱都是每10分钟检查一次。那么在这10分钟内程序都好好的,操作正常,一旦到了10分钟后,程序同时连接5个POP服务器,导致程序失去响应,要过很长时间才能恢复。实在是找不到办法解决。
yypp 2001-08-02
  • 打赏
  • 举报
回复
现在关键的是我如果只检查一个信箱的话,当连接POP服务器的时候程序都会好象死掉一样。。。过5-7秒后才恢复正常
Mercedes 2001-08-02
  • 打赏
  • 举报
回复
开子线程吧,这样在连接的时候主线程不致会失去响应。
如果用SLEEP或者TIMER都会使主线程失去响应的。
dancemaple 2001-08-02
  • 打赏
  • 举报
回复
gz
tempest 2001-08-02
  • 打赏
  • 举报
回复
up
yypp 2001-08-02
  • 打赏
  • 举报
回复
这里有个问题大家想过没有?比如用户同时监视5个信箱,
他的设定是:第一个信箱每1分钟检查一次。
第二个信箱每2分钟检查一次。
。。。。。。。。
第五个信箱每5分钟检查一次。

如果使用SETTIMER或者多线程的话我不知道该怎么做。
火鸟李国平 2001-08-02
  • 打赏
  • 举报
回复
不要用timer用api处理如sleep、SetTimer等很简单而且效率高
yypp 2001-08-02
  • 打赏
  • 举报
回复
哪位能写几句示范代码?
yypp 2001-08-02
  • 打赏
  • 举报
回复
up
VSaber 2001-08-01
  • 打赏
  • 举报
回复
一个timer就够了阿,开后台线程监视就应该不慢了
yypp 2001-08-01
  • 打赏
  • 举报
回复
谢谢你的回复。

程序主要是在控件连接POP服务器地址的时候很慢。。。
按照你的方法的话,如果当我把5个信箱的检查时间都设置为一样(比如1分钟),那么在同一时刻同样要连接5个服务器地址,和我那个是不是没有什么区别?
Java_SCU 2001-08-01
  • 打赏
  • 举报
回复
我觉得做一个公共线程,可传入POP3服务器地址、用户名、密码等参数
用一个Timer,响应时间为你的程序可以设置的时间的单位值,每当条件满足时就启动一个监视邮箱的进程,我想(只是想)这样会不错
yypp 2001-08-01
  • 打赏
  • 举报
回复
刚才比笔误,应该是“我用了很多
Application.ProcessMessages 效果不好 "

请问谁有过这方面的经验?
我这个程序该如何优化?
yypp 2001-08-01
  • 打赏
  • 举报
回复
up

5,388

社区成员

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

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