chenyz634 发表于 2014-3-17 09:04:02

delphi多线程技术

大家好,因为我刚学delphi,对delphi的多线程不是很熟悉,现在我需要用到多线程实现以下的功能,请大家多多指教。
下面说说单线程下,这个程序的实现过程吧。
首先在某个文件夹里,得到文件夹里的所有压缩包,然后解压缩,再然后是验证压缩包里的内容,因为这个验证的过程比较慢,而且压缩包可能比较多,于是想用多线程。这验证压缩包内容的时候,需要调用两个dll。最后是将验证的进度显示到窗体中。

chenyz634 发表于 2014-3-17 09:07:53

如果哪位大侠能提供个demo就再好不过了。:lol:

罂粟 发表于 2014-3-17 10:54:28

解压很耗CPU,所以一个线程专门解压,一个个的进行,解压完成一个,就启动另一个验证线程来验证。

罂粟 发表于 2014-3-17 10:56:34

验证进度是显示每一个压缩包的进度?还是所有压缩包验证的整个进度?

chenyz634 发表于 2014-3-17 11:51:39

罂粟 发表于 2014-3-17 10:56 static/image/common/back.gif
验证进度是显示每一个压缩包的进度?还是所有压缩包验证的整个进度?

本来我是想两个进度都想要显示的,但后来觉得如果每个压缩包的进度都显示的话,那好像难度大了很多。所以,还是只需要显示所有压缩包的验证进度就行了。:lol:

comeheres 发表于 2014-3-17 13:07:03

稍微学习下多线程就能写了

chenyz634 发表于 2014-3-17 13:40:26

comeheres 发表于 2014-3-17 13:07 static/image/common/back.gif
稍微学习下多线程就能写了

头脑笨,没你这种大神犀利。。

沉默的风采 发表于 2014-3-18 08:15:04

关于Delphi的多线程你可以去看看万一老师的博客 里的Delphi与多线程相关随笔:
begin
TThread.CreateAnonymousThread(MyMethod).Start; //!!!
end;
MyMethod为要调用的方法或过程、函数。
当然CreateAnonymousThread是哪个版本的Delphi里有的函数我也不清楚,只是前段时间偶尔在万一博客园看到的。

罂粟 发表于 2014-3-18 11:05:16

沉默的风采 发表于 2014-3-18 08:15
关于Delphi的多线程你可以去看看万一老师的博客 里的Delphi与多线程相关随笔:
begin
TThread.Create ...

这个是xe版本开始有的

罂粟 发表于 2014-3-18 11:06:54

chenyz634 发表于 2014-3-17 11:51
本来我是想两个进度都想要显示的,但后来觉得如果每个压缩包的进度都显示的话,那好像难度大了很多。所以 ...

如果每个都显示,频繁操作vcl主线程,只会拖慢速度

chenyz634 发表于 2014-3-19 08:18:27

沉默的风采 发表于 2014-3-18 08:15 static/image/common/back.gif
关于Delphi的多线程你可以去看看万一老师的博客 里的Delphi与多线程相关随笔:
begin
TThread.Create ...

好,谢谢!!

chenyz634 发表于 2014-3-19 08:18:58

罂粟 发表于 2014-3-18 11:06 static/image/common/back.gif
如果每个都显示,频繁操作vcl主线程,只会拖慢速度

考虑到了这个问题,谢谢提醒。

Angel丶L 发表于 2015-2-2 01:01:56

逛一逛,瞧一瞧,顶一顶,没坏处
页: [1]
查看完整版本: delphi多线程技术