lpxx 发表于 2018-7-21 13:38:58

skyfree 发表于 2018-7-20 15:19
_FileListToArray 是我最常用的几个函数之一,能不能别一出问题就怪UDF不好?你的这个代码逻辑让脚本在短时 ...

S大的回复高度都不一样。

zhaoceshi 发表于 2018-7-23 10:13:51

xz00311 发表于 2018-7-21 09:55
把解决的代码共享一下呗

#include <File.au3>

While 1
sleep(10)
$ArrayFile = _FileListToArray("c:\test","*.log",1)
If @error Then ContinueLoop
for $i = 1 to $ArrayFile
      If         StringInStr($ArrayFile[$i],"_",0,1,1,10) > 1 Then
                TrayTip("提示:","已检测到带有_文件名:" & $ArrayFile[$i],5,1)
      EndIf
Next
WEnd

xz00311 发表于 2018-7-23 11:54:42

在next后面也可以啊sleep你有没有试过看看行不行

zhaoceshi 发表于 2018-7-23 11:57:22

xz00311 发表于 2018-7-23 11:54
在next后面也可以啊sleep你有没有试过看看行不行

我一开始就是加载后面,试过很多次,真的不行。可能是我的环境问题吧。加在上面就可以把cpu降下去了

afan 发表于 2018-7-23 12:34:59

zhaoceshi 发表于 2018-7-23 11:57
我一开始就是加载后面,试过很多次,真的不行。可能是我的环境问题吧。加在上面就可以把cpu降下去了

看来告诉你了你也没理解,你的 ContinueLoop 不知道意思吗? 直接返回继续循环,根本执行不到后面的 Sleep,所以Sleep要写在循环上层。
另外,非要改成 Sleep(10)? 如此损耗硬盘的代码…

zhaoceshi 发表于 2018-7-23 15:46:57

afan 发表于 2018-7-23 12:34
看来告诉你了你也没理解,你的 ContinueLoop 不知道意思吗? 直接返回继续循环,根本执行不到后面的 Slee ...

。。。忘记这茬了,没有文件就直接跳过下面的了。
是sleep(10)是时间太短了吗?因为我这边一检测到有文件,就要马上采取行动。
以前都是用au3写一下简单的小工具。对性能这块真心不了解。我是一个比小白还白的人。。。

xixin1314 发表于 2018-9-26 15:11:00

kk_lee69 发表于 2018-7-20 10:27
While 1
$ArrayFile = _FileListToArray("c:\test","*.log",1)
If @error Then ContinueLoop


大神,谢谢
页: 1 [2]
查看完整版本: _FileListToArray函数占用CPU率高的问题【已解决】