在多线程中使用过ZIPTV组件的进!!
with fzip do
begin
ArchiveFile := zipdir + 'Rpt.zip';
DateAttribute := daFileDate;
StoredDirNames := sdRelative;
RecurseDirs := True;
ExcludeSpec.Clear();
FileSpec.Clear();
FileSpec.Add(AFilePath + AFileName);
CompressCount := 0;
CompressCount := Compress();
end;
其中 fzip:TZip;是线程的私有变量
我不是用多线程 就使用单线程 压缩5000个文件 耗时大约3分钟。
开10个线程后 每个线程压缩大约500左右的文件,每个线程耗时5分钟多。线程使用方面没什么问题。
所有的耗时都花在CompressCount := Compress();这句。