找回密码
 加入
搜索
楼主: zhaoceshi

[AU3基础] _FileListToArray函数占用CPU率高的问题【已解决】

[复制链接]
发表于 2018-7-21 13:38:58 | 显示全部楼层
skyfree 发表于 2018-7-20 15:19
_FileListToArray 是我最常用的几个函数之一,能不能别一出问题就怪UDF不好?你的这个代码逻辑让脚本在短时 ...

S大的回复高度都不一样。
 楼主| 发表于 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[0]
        If         StringInStr($ArrayFile[$i],"_",0,1,1,10) > 1 Then
                TrayTip("提示:","已检测到带有_文件名:" & $ArrayFile[$i],5,1)
        EndIf
Next
WEnd
发表于 2018-7-23 11:54:42 | 显示全部楼层
在next后面也可以啊sleep你有没有试过看看行不行
 楼主| 发表于 2018-7-23 11:57:22 | 显示全部楼层
xz00311 发表于 2018-7-23 11:54
在next后面也可以啊sleep你有没有试过看看行不行

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

看来告诉你了你也没理解,你的 ContinueLoop 不知道意思吗? 直接返回继续循环,根本执行不到后面的 Sleep,所以Sleep要写在循环上层。
另外,非要改成 Sleep(10)? 如此损耗硬盘的代码…
 楼主| 发表于 2018-7-23 15:46:57 | 显示全部楼层
afan 发表于 2018-7-23 12:34
看来告诉你了你也没理解,你的 ContinueLoop 不知道意思吗? 直接返回继续循环,根本执行不到后面的 Slee ...

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

大神,谢谢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-24 04:32 , Processed in 0.064181 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表