动作执行太慢,如何优化

动作开发 · 299 次浏览
freeOptions 创建于 2024-02-26 14:43

动作网址:https://getquicker.net/Sharedaction?code=c7f801d8-0827-4375-5ff1-08dc344486eb

还是前两天那个随机挑选一定数目的图片,然后转移到另外一个文件夹中的动作,我尝试了一次性转移3000张图片,结果执行非常耗时,大概要1分钟左右的时间才可以将这3000张图片全部挑选出来,随机挑选图片的代码如下

 

麻烦大佬们看一下有没有优化的空间,指导一下,谢谢~


回复内容
CL 2024-02-26 14:47
#1

循环的时候默认是有1ms的间隔,把这个参数改成0试一下。 

另外这个需求应该可以直接在表达式里实现,不需要使用循环模块。 

freeOptions 回复 CL 2024-02-26 14:52 :

好的,晚上回去间隔改成0试试。
另外请问直接在表达式里实现应该怎么做呢

CL 回复 freeOptions 2024-02-26 14:53 :

详细说下这两个循环的目的,实现的什么需求,然后我看看怎么写表达式

freeOptions 回复 CL 2024-02-26 15:06 :

第一个循环是判断本次循环循环到第几项了,当循环次数 = 本次要转移的图片数量 时终止循环
第二个循环是为了获取最终要转移的图片集合 list,具体实现是:每次随机获取一个下标并从源文件列表中获取该下标对应的图片名,然后判断list里是否有该图片,如果没有则放入list中,如果有则继续循环。

CL 回复 freeOptions 2024-02-26 15:16 :

相当于从一个列表里随机提取n项?可以用网友分享的子程序,比如这个 列表操作_随机选取N个元素(子程序) - 子程序信息 - Quicker

WindChant 回复 freeOptions 2024-02-26 15:16 :

{numbers}.OrderBy(x => Guid.NewGuid()).Take(n).ToList()
试试这个

CL 回复 WindChant 2024-02-26 15:17 :

很有创意的办法

freeOptions 回复 WindChant 2024-02-26 15:22 :

厉害厉害~先谢过大佬

freeOptions 回复 CL 2024-02-26 15:22 :

对对,就是从列表中提取不重复的n项,我去试试这个子程序,谢谢老大~

回复主贴