Всем добрый день!
Нужен ваш совет. Допустим, есть окно GUI в котором есть кнопка $Button1, при нажатии вызывается пользовательская функция Example() которая кроме основного кода имеет задержку в 10 секунд (или любой другой промежуток времени, вплоть до нескольких часов). Если программу написать так как приведено в примере ниже, то окно программы перестанет отвечать на любые запросы, так как стоит включиться паузе функции и цикл While 1....WEnd будет недоступным, а соответственно и все управляющие элементы (кнопки, чек-боксы и т.д.) даже закрыть не получится! Что можете посоветовать для решения этой проблемы? Как сделать паузу в выполнении функции и при этом что бы окно программы осталось активным?
Нужен ваш совет. Допустим, есть окно GUI в котором есть кнопка $Button1, при нажатии вызывается пользовательская функция Example() которая кроме основного кода имеет задержку в 10 секунд (или любой другой промежуток времени, вплоть до нескольких часов). Если программу написать так как приведено в примере ниже, то окно программы перестанет отвечать на любые запросы, так как стоит включиться паузе функции и цикл While 1....WEnd будет недоступным, а соответственно и все управляющие элементы (кнопки, чек-боксы и т.д.) даже закрыть не получится! Что можете посоветовать для решения этой проблемы? Как сделать паузу в выполнении функции и при этом что бы окно программы осталось активным?
Код:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 172, 77, 196, 128)
$Label1 = GUICtrlCreateLabel("Label1", 24, 8, 36, 17)
$Button1 = GUICtrlCreateButton("Button1", 16, 40, 59, 25, $WS_GROUP)
$Label2 = GUICtrlCreateLabel("Label2", 96, 8, 36, 17)
$Button2 = GUICtrlCreateButton("Button2", 88, 40, 59, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
Example()
Case $Button2
; какой - либо код
EndSwitch
WEnd
Func Example()
; какой - либо код
Sleep(10000)
; какой - либо код
EndFunc