Что нового

[Ошибки] возврат к функции

andreitrane

Новичок
Сообщения
141
Репутация
3
как можно вернуться к функции _sleepfunc() не вызывая рекурсии??
Код:
; нажатием на button вызывается функция _start()
Func _start()
	*****************
	*****************
	*****************
	For $i = 1 to 50 ; любое число
		******************
		******************
		******************
	_prov() ; эта функция отправляет запрос на сервер и принимает информацию, которая записывается в переменную $inf
		_sleepfunc() ; эта функция смотрит данные из _prov() и решает: спать и опять проверить или продолжить выполнение функции _start()
	Next
EndFunc

Func _sleepfunc()
	if $inf = 1 Then
		; продолжаем выполнение _start()
	ElseIf $inf = 2 Then
		Sleep(5000)
	_prov()
		_sleepfunc() ; если сразу ставить так, то будет рекурсия, потому что бывает, что нужный ответ не приходит по 2 часа
	EndIf
	EndFunc
 

axlwor

Скриптер
Сообщения
657
Репутация
147
Код:
HotKeySet("{esc}", "exitscript")

_start()

Func _start()
	Local $inf
    while 1
		$inf = _prov()
        _sleepfunc($inf)
		Sleep(1000)
    WEnd
EndFunc

Func _prov()
	Return Random(1,2,1)
EndFunc

Func _sleepfunc($Temp = 2)
    if $Temp = 1 Then
		Return
	EndIf
	
	If $Temp = 2 Then
		ConsoleWrite("Спим 5 секунд" & @CRLF)
		Sleep(5000)
    EndIf
EndFunc

Func ExitScript()
	MsgBox ( 0, "Внимание", "Вышли!!!!", 10 )
	Exit
EndFunc
 
Верх