[已解决]请教一个AU3有延时的多线程操作
本帖最后由 zch11230 于 2012-2-25 16:00 编辑我需要对N多个账号进行操作 写了框架如下的小工具
Func _online只负责登陆账号操作过程中有少量延时 500左右 _clickSetup只负责点击出设置界面 极少延时 而且理论上可以不要延时 _readinfo负责读取出账号信息并进行对应的操作,有较多延时 可能有3秒左右三个FUNC互不影响 只有一个判断是否结束程序的变量 $leave需要传递 我试过分开保存为3个脚本文件来同时运行效果较好基本上1秒操作一个账号 但我在一个脚本下运行时就会增加到近2秒一个. 效率下降比较大.
用了论坛里面找的一个多线程示例没有延时的话还可以 但如果加了sleep延时 程序基本上就没有反映了. 请教一下有什么办法对这种有延时的情况进行多线程操作.
问题暂时没有完美解决但找到了方向 至少Coproc可以达到效果
While 1
_online()
_clickSetup()
_readinfo()
If $leave = 1 Then
Do
_clickSetup()
_readinfo()
Until Not WinExists($maintitle)
MsgBox (0,"提示","操作完毕")
ExitLoop
EndIf
WEnd
看看,帮顶 其实我也想知道这个多帐号同时操作 好像au3是不支持多进程的
有2秒的延迟很有影响吗? 好像au3是不支持多进程的
有2秒的延迟很有影响吗?
xms77 发表于 2012-2-21 10:01 http://www.autoitx.com/images/common/back.gif
就是比较影响效率相当于三个操作同时进行的话 一次循环需要3秒而依次进行的话 就是三个操作相加 近6秒而模拟多线程的操作和AdlibRegister差不多 都不能有延时存在程序会卡爆
昨天看了下资料 可能还是要从多开入手CoProc可以达到效果 但是CPU占用率高了点. 多线程不可能比单线程快,队非是每个线程占一个CPU,但是现在很少有这种程序,只有多进程才能占多个CPU 要想快只能多进程 多线程不可能比单线程快,队非是每个线程占一个CPU,但是现在很少有这种程序,只有多进程才能占多个CPU
unique009 发表于 2012-2-21 15:40 http://www.autoitx.com/images/common/back.gif
我这里的时间不是消耗在运算速度上 而是三个操作所产生的等待时间 比如打开一个窗口 等目标窗口出来之后对这个窗口进行操作这里就有一个winwait产生的等待时间单线程的话 三个依次执行一个执行 另外两个就等待 处于空闲状态浪费时间. 只能多进程了!
页:
[1]