工作时将控制权交还给用户 - Delphi

时间:2011-01-11 05:10:01

标签: delphi

我在Delphi 2010中编写程序。该程序的一部分涉及File Hashing,其中包含大文件需要相当长的时间。我遇到的问题是当程序离开用户想要的文件时,程序当前在100MB文件上挂起最多60秒。我希望用户能够在文件哈希发生时使用程序的其他功能(Memopad,String Hashing)。

该计划的当前结构如下: -

  1. 用户启动散列(可以通过更改选定的文件或散列算法来完成)
  2. 调用函数CheckHashBox
  3. CheckHashBox检查是否选择了散列算法
  4. 如果选择调用哈希算法相关功能
  5. Hashing alogrithms函数缓冲文件,运行哈希算法然后打印最终输出到StringGrid
  6. 对所有12个哈希算法重复步骤3 - 5。
  7. 正如我所说的大文件,这可能需要长达60秒,特别是Whirlpool,SHA-512算法。另一个奇怪的事情是,虽然在代码中它应该在返回特定哈希算法之后打印输出,然后再检查下一个结果直到所有完成才显示。

    我还没有发布任何实际代码,因为所有这些代码都包含相当多的代码,但我可以发布任何需要帮助的代码段。

1 个答案:

答案 0 :(得分:6)

你需要一个线程......另一个问题是一个很好的答案:

Resuming suspended thread in Delphi 2010?

邓肯。