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

Fla*_*lyn 2 delphi

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

该方案目前的结构如下: -

  1. 用户启动散列(可以通过更改选定的文件或散列算法来完成)
  2. 调用函数CheckHashBox
  3. CheckHashBox检查是否选择了散列算法
  4. 如果选择调用哈希算法相关功能
  5. 散列算法函数缓冲文件,通过散列算法运行,然后将最终输出打印到StringGrid
  6. 对所有12个哈希算法重复步骤3 - 5.

正如我所说的大文件,这可能需要长达60秒,特别是Whirlpool,SHA-512算法.另一个奇怪的事情是,虽然在代码中它应该在返回特定哈希算法之后打印输出,然后再检查下一个结果直到所有完成才显示.

我没有发布任何实际代码,因为所有这些都涵盖了相当多的代码,但我可以发布任何需要帮助的代码段.

Dun*_*n_m 6

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

在Delphi 2010中恢复挂起的线程?

邓肯.