У меня есть следующий код:
While (true)
{
try
{
Log("sending GET request")
whr := ComObjCreate("WinHttp.WinHttpRequest.5.1")
whr.SetTimeouts(0, 30000, 30000, 120000)
whr.Open("GET", "https://myurl.com", false)
whr.Send()
Log("sent GET request")
response := whr.ResponseText
; ...
}
catch ex
{
Log("caught error")
Log("`n`nError in " ex.What ", message " ex.Message ", line " ex.Line ", extra " ex.Extra)
Sleep 60000
}
Log("while loop repeats")
}
Насколько я понимаю, журнал должен содержать либо sent GET request
, либо caught error
, прежде чем while loop repeats
объявит о следующей итерации while l oop.
Однако мой файл журнала выглядит так:
20200801-225311 sending GET request
20200801-225412 while loop repeats
20200801-225412 sending GET request
20200801-225513 while loop repeats
20200801-225513 sending GET request
20200801-225615 while loop repeats
20200801-225615 sending GET request
20200801-225716 while loop repeats
20200801-225716 sending GET request
20200801-225817 while loop repeats
20200801-225817 sending GET request
20200801-225918 while loop repeats
20200801-225918 sending GET request
20200801-230020 while loop repeats
20200801-230020 sending GET request
20200801-230121 while loop repeats
20200801-230121 sending GET request
20200801-230222 while loop repeats
20200801-230222 sending GET request
20200801-230324 while loop repeats
20200801-230324 sending GET request
20200801-230425 while loop repeats
20200801-230425 sending GET request
20200801-230526 while loop repeats
20200801-230526 sending GET request
20200801-230628 while loop repeats
20200801-230628 sending GET request
20200801-230729 while loop repeats
20200801-230729 sending GET request
20200801-230730 sent GET request
...
Как видите, запрос GET запускается много раз, и почти каждый раз он не завершается, и в журнале нет ни sent GET request
, ни caught error
.
Какой аспект потока управления AutoHotKey мне не хватает? Как можно выполнить код до while loop repeats
, не доходя до sent GET request
или caught error
?