线程内的delphi zip文件(使用TZipMaster)

线程内的delphi zip文件(使用TZipMaster),delphi,multithreading,zip,Delphi,Multithreading,Zip,我想使用TZipMaster组件在线程中压缩文件。 问题是,当我从IDE运行程序时,我得到了错误 (从窗口) “程序不再响应了。 ->在线搜索解决方案 ->关闭程序” (或诸如此类的事,我不知道确切的英文信息.) 但是,ZIP文件创建成功。 Delphi 2009的最后一个调试器输出是: 卸载模块:DelZIp179.dll 当我直接运行.exe时,它似乎工作正常,我没有收到这个错误。 但是,我不确定我是否可以忽略这个错误,还是最好修复它 感谢您的回复!您会收到此错误,因为您的应用程序正在主线程

我想使用TZipMaster组件在线程中压缩文件。 问题是,当我从IDE运行程序时,我得到了错误 (从窗口)

“程序不再响应了。 ->在线搜索解决方案 ->关闭程序”

(或诸如此类的事,我不知道确切的英文信息.)

但是,ZIP文件创建成功。 Delphi 2009的最后一个调试器输出是:

卸载模块:DelZIp179.dll

当我直接运行.exe时,它似乎工作正常,我没有收到这个错误。 但是,我不确定我是否可以忽略这个错误,还是最好修复它


感谢您的回复!

您会收到此错误,因为您的应用程序正在主线程中执行一些繁重的处理(压缩),并且没有处理Windows消息

最好解决这个问题——要么在压缩时处理Windows消息(如果TZipMaster支持),要么将压缩移到后台线程

更多信息: 我检查了TZipMaster源代码,发现有一个OnTick事件会定期调用


编写OnTick事件处理程序并从内部调用Application.ProcessMessages。这将解决您的问题。

您好,谢谢您的回答。我对线程不是很有经验,因此我必须问:如何确定TZipMaster是否支持处理Windows消息?如何将其移动到后台线程?非常感谢!