Что нового

Почему возникает задержка

winkot

Новичок
Сообщения
169
Репутация
0
При нажатии кнопки $Button окно закрывается не сразу, а после задержки в 10 сек Sleep(10000). Почему так происходит? Команда Sleep(10000) должна обрабатываться после выполнения функции. Почему она влияет на нее?
Код:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 240, 127, 617, 293)
$Button = GUICtrlCreateButton("OK", 72, 72, 97, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

Test()
Sleep(10000)

Func Test()
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Return GUIDelete()
        Case $Button
            Return 1
            Return GUIDelete()
    EndSwitch
WEnd
EndFunc
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
При нажатии на кнопку срабатывает "Return 1", который просто завершает функцию. А окно закрывается при завершении скрипта, то есть после Sleep.
 
Автор
W

winkot

Новичок
Сообщения
169
Репутация
0
А как тогда сделать, что бы и окно закрывалось сразу и значение функции тоже возвращалось без задержки?
 
Последнее редактирование:

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Не одновременно. Выполняется только первый Return. До второго не доходит.
Код:
Test()

Func Test()
  Return ConsoleWrite("first" & @CRLF)
  Return ConsoleWrite("second" & @CRLF) ; этот не выполнится
EndFunc
 
Верх