(что бы исключить подвисание GUI и т д)?
$_hTimer = TimerInit()
Do
Sleep(100)
Until TimerDiff($_hTimer) > 5000
ну типо того
Спасибо)))
это не экспертное мнение чисто субъективщина
ну сейчас как полностью перепишу и буду тестить. Просто функцию то нашел где подвисает гуи иногда, но толком не уверен в чем причина, в слипе или в функции что консоль юзает, и надеюсь что в слипе
ну сокращай значение слипа, пока видно не будет
если сократить то там другие проблемы будут, поэтому пока что так попробую, а там видно будет
ошибки с ADB (((
Не используйте оператор "SLEEP" в графическом интерфейсе! Если вы сделаете это в графическом интерфейсе, это приведет лишь к тому, что графический интерфейс будет плохо реагировать на ваши элементы управления. В документации четко указано, что при использовании GUIGETMSG() нагрузка на процессор отсутствует. Это не только сказано, но и на самом деле так и есть. Opt("MustDeclareVars", 1) #include <GUIConstantsEx.au3> Global $h_gui = GUICreate(@ScriptName,200,100) Global $guimsg GUISetState(@SW_SHOW,$h_gui) Do $guimsg = GUIGetMsg() Until $guimsg = $GUI_EVENT_CLOSE GUIDelete($h_gui) Exit 0% CPU! 👉GUIGetMsg Polls the GUI to see if any events have occurred. Remarks This function automatically idles the CPU when required so that it can be safely used in tight loops without hogging all the CPU. 👉GUIGetMsg Опрашивает GUI, чтобы узнать, произошли ли какие-либо события. Примечания Эта функция автоматически переводит CPU на холостой ход, когда это необходимо, поэтому ее можно безопасно использовать в узких циклах, не перегружая весь CPU. 👉GUI Reference - MessageLoop Mode ... While 1 $iMsg = GUIGetMsg() ... ... WEnd Usually a tight loop like the one shown would send the CPU to 100% - fortunately the GUIGetMsg function automatically idles the CPU when there are no events waiting. Do not put a manual sleep in the loop for fear of stressing the CPU - this will only cause the GUI to become unresponsive. 👉GUI Reference - Режим MessageLoop ... While 1 $iMsg = GUIGetMsg() ... ... WEnd Обычно такой затяжной цикл, как показанный на рисунке, выводит процессор на 100% - к счастью, функция GUIGetMsg автоматически отключает процессор, когда нет ожидающих событий. Не помещайте ручной сон в цикл, опасаясь перегрузить процессор - это приведет лишь к тому, что графический интерфейс станет неотзывчивым.
но у меня GUI в режиме: Opt("GUIOnEventMode", 1)
Я вижу. Ну, тогда... 😂🤗
не путайте опрос интерфейса и прерывания для работы интерфейса
в плане Sleep для функции что выполняются основным кодом программы, не относящемуся к ГУИ
Если вы используете GUIOnEventMode, все в порядке. Я не понял этого из вашего вопроса выше.
у него GUIOnEventMode+Sleep)
но инфа полезная, как помню я как раз из за этого почти сразу и перешел на этот режим, так как тогда с этим не разобрался. Помню Sleep у меня как раз присутствовал(
Обсуждают сегодня