递归火山软件开发平台

标题: 请教下,全盘多线程搜索文件问题 [打印本页]

作者: 4463424    时间: 2023-8-5 10:05
标题: 请教下,全盘多线程搜索文件问题
我想在全盘搜索指定文件,不用多线程耗时很长,用多线程方法没整对,请高手指点下!!!用线程池老出问题。
文件见附件
  1. <火山程序 类型 = "通常" 版本 = 1 />

  2. 方法 我的主窗口_创建完毕 <接收事件 类型 = 整数 注释 = "当本组件及其中所有子组件均被创建完毕后发送此事件.">
  3. 参数 来源对象 <类型 = 我的主窗口 注释 = "提供事件产生的具体来源对象">
  4. 参数 标记值 <类型 = 整数 注释 = "用户调用"挂接事件"命令时所提供的"标记值"参数值,非此方式挂接事件则本参数值固定为0.">
  5. {
  6.     变量 句柄 <类型 = 整数>

  7.     句柄 = 取当前线程ID ()
  8.     地址哈希.插入 (句柄, "c:")
  9.     启动线程 (程序枚举, (变整数)句柄, , , )
  10.     返回 (0)
  11. }

  12. <火山程序 类型 = "通常" 版本 = 1 />

  13. 方法 程序枚举 <静态 类型 = 整数>
  14. 参数 路径_指针 <类型 = 变整数 注释 = "提供启动时传递到线程函数的用户参数值1">
  15. {
  16.     变量 文件查找 <类型 = 文件查找类>
  17.     变量 路径 <类型 = 文本型>
  18.     变量 临时名称 <类型 = 文本型>

  19.     路径 = 地址哈希.取值 ((整数)路径_指针)
  20.     临时名称 = 文件查找.寻找文件 (路径 + "\" + "blender.exe", , )

  21.     <折叠> 判断循环 (临时名称 != "")
  22.     {
  23.         调试输出 ("------------------------------------------")
  24.         调试输出 (路径 + 临时名称)
  25.         调试输出 ("------------------------------------------")
  26.         临时名称 = 文件查找.寻找文件 ("", , )
  27.     }

  28.     临时名称 = 文件查找.寻找文件 (路径 + "\" + "*.*", 文件属性.子目录, 文件属性.临时文件 + 文件属性.系统文件 + 文件属性.隐藏文件)

  29.     如果真 (临时名称 != "")
  30.     {
  31.         变量 路径2 <类型 = 文本型>
  32.         变量 句柄 <类型 = 整数>

  33.         判断循环 (临时名称 != "")
  34.         {
  35.             路径2 = 路径 + "\" + 临时名称

  36.             句柄 = 取当前线程ID ()
  37.             地址哈希.插入 (句柄, 路径2)
  38.             启动线程 (程序枚举, (变整数)句柄)

  39.             临时名称 = 文件查找.寻找文件 ("", 文件属性.子目录, 文件属性.临时文件 + 文件属性.系统文件 + 文件属性.隐藏文件)
  40.         }

  41.         地址哈希.删除 (句柄)
  42.     }

  43.     返回 (0)

  44. }

复制代码











欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4