rcmaehl Posted November 11, 2011 Share Posted November 11, 2011 Okay, I have a script with a VERY long and intense For Next loop. Is there a way to make it so that it can be interrupted (either stop the loop OR close/quit the window/process) by a GUIControl or something of the like that WON'T increase the time the loop is executed exponentially?Loop Time With/Without GUIGetMsg:With GUIGetMsg: 1131203.192 millisecondsWithout GUIGetMsg: 3341.47011 milliseconds My UDFs are generally for me. If they aren't updated for a while, it means I'm not using them myself. As soon as I start using them again, they'll get updated.My Projects WhyNotWin11Cisco Finesse, Github, IRC UDF, WindowEx UDF Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted November 11, 2011 Moderators Share Posted November 11, 2011 rcmaehl,Try reading the Interrupting a running function tutorial in the Wiki - it offers a number of ways to interrupt long loops. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
rcmaehl Posted November 11, 2011 Author Share Posted November 11, 2011 (edited) @M23 Thanks! Didn't know that. I had thought that HotKeySet would be like a function and would wait for the For Next Loop to Terminate. I'll try this out and see if it doesn't overkill the execution time.EDIT: Nope, it doesn't increase the execution time too much although it does increase it.Loop Time With/Without HotKey:With Hotkey: 6804.39509 millisecondsWithout Hotkey: 3379.95104 millisecondsAbout Double the loop time, although it's a MASSIVE decrease from GUIGetMsg and with my For Next Loop looping as many times as it is it's a MASSIVE improvement. Thanks! Edited November 11, 2011 by rcmaehl My UDFs are generally for me. If they aren't updated for a while, it means I'm not using them myself. As soon as I start using them again, they'll get updated.My Projects WhyNotWin11Cisco Finesse, Github, IRC UDF, WindowEx UDF Link to comment Share on other sites More sharing options...
BrewManNH Posted November 11, 2011 Share Posted November 11, 2011 There's a built-in Sleep(10) in the GUIGetMsg command function, which is why it's causing the slow down if you're looping through the for...next loop enough times. If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator Link to comment Share on other sites More sharing options...
rcmaehl Posted November 13, 2011 Author Share Posted November 13, 2011 There's a built-in Sleep(10) in the GUIGetMsg command function, which is why it's causing the slow down if you're looping through the for...next loop enough times.That explains SO MUCH. No wonder! My UDFs are generally for me. If they aren't updated for a while, it means I'm not using them myself. As soon as I start using them again, they'll get updated.My Projects WhyNotWin11Cisco Finesse, Github, IRC UDF, WindowEx UDF Link to comment Share on other sites More sharing options...
JohnOne Posted November 13, 2011 Share Posted November 13, 2011 (edited) I'm not certain about this, but I doubt the built in sleep is 10 milliseconds. Probably closer to 1, if its even that high. Edited November 13, 2011 by JohnOne AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans. Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted November 13, 2011 Moderators Share Posted November 13, 2011 JohnOne, From the horse's mouth. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
JohnOne Posted November 13, 2011 Share Posted November 13, 2011 Ah I see, I was just about to post my results from a test, which revealed after 100 iterations it jumped up to 10 milliseconds. GUICreate("") For $i = 0 to 300 $timer = TimerInit() GUIGetMsg() ConsoleWrite(TimerDiff($timer) & @CRLF) Next AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now