下载地址:https://files.1fav.org/s/gJYhx


20250125更新记录

  1. 去掉TextBox控件,改用基于Listview绘制的VirtualListView来进行展示数据,解决之前计算时候不停闪屏问题,包括历史记录表格也是
  2. 增加了调用历史记录的功能,计算已经计算过的文件时直接调用历史记录(可自行在设置中关闭).使用的是文件特征码来记录是否计算过.计算一个文件的特征码以我自己的7950X3D为例,只要2微秒不到,所以不影响性能,10000个文件也才20毫秒不到的级别.而且主要消耗的时间还是在Fileinfo的创建上..
  3. 给历史记录展示增加双缓存,测试打开100万条记录和打开1条记录没区别,主要还是因为VirtualListView我在绘制的时候也加了缓存,而且数据的展示是实时绘制,并不是一次加载100万条记录
  4. 优化了文件处理列队,怕万一有人无聊要计算几万个文件甚至几十万个文件.. 有待进一步优化
  5. 去掉除了清理历史记录的所有弹窗提示,改用Toast来提示.
  6. 改进了内存管理和资源释放,因为如果你们和我一样设置一个文件使用20,甚至30个线程去计算,你的物理内存使用会飙升.这个改动就是为了更好的回收线程和释放资源,另外因为.NET TP Worker线程无法直接管理,我设置了一个每次执行之后的定时任务来释放和回收内存.
  7. 还有其他一些巴拉巴拉的就不哔哔了,什么优化了一下代码结构,也是方便自己,把一些常用的封装起来了,然后再就是更好的异常处理之类的...
  8. 起床之后又修改了一个地方,修改历史记录中之前的遍历法为枚举加字典的方法



因为这次考虑到了可能会计算大量的超大文件,所以用了.NET8.0,当然也是为了性能才会这么选.然后本来想自己写MD4算法,但是失败了,然后用了NuGet中的Portable.BouncyCastle包来算,不过包是死的,人是活的嘛,我在其中加入了对单个文件进行多线程计算的功能,目前链接生成速度是吊打我能见到的所有ED2K链接生成工具