递归出错请指教。
如下图一样一个错误提示。是不是你递归的次数超过5000了?以前看过帮助,好像Au3是不支持超过5000的递归次数的。 我查过递归次数只有4000左右。 贴代码吧,一般情况下,递归都可以用迭代替换掉的,并且迭代比递归效率高多了。
#include <Process.au3>
While 1
Http()
WEnd
Func Http()
Dim $PID, $I = 1
$PID = Run(@ProgramFilesDir & "\Internet Explorer\IEXPLORE.EXE www.baidu.com")
_RunDOS("taskkill /F /PID " & $PID)
$I += 1
Sleep(Random(5000, 10000, 1))
Http()
EndFunc ;==>Http这是我的代码。请帮忙看下。 没看出你为什么用递归.. 改成这样效果也差不多
#include <Process.au3>
While 1
Http();这需要一直呼叫吗?
WEnd
Func Http()
Dim $PID, $I = 1
$PID = Run(@ProgramFilesDir & "\Internet Explorer\IEXPLORE.EXE www.baidu.com")
_RunDOS("taskkill /F /PID " & $PID)
$I += 1
AdlibRegister ("Http",Random(5000, 10000, 1))
EndFunc ;==>Http
测试递归等级,结果是可以成功执行3899次.第3900次程序退出.
你那代码直接在while里面调用http不用递归不就行了吗? 的确,3899次.
测试代码如下 :
test(1)
func test($str)
if $str>3890 then ConsoleWrite($str&@crlf)
$str+=1
test($str)
EndFunc
页:
[1]