Quantcast
Channel: AutoIt v3 - Developer Chat
Viewing all articles
Browse latest Browse all 750

GUICtrlSetData - blocking function or not?

$
0
0

When used on a Progress control it seems not to be a blocking function, but rather get's blocked itself by the next blocking function.

 

I set the progress data, and start InetRead, the control does not update until InetRead is complete, or a timer is employed.

 

Code explanation...

AutoIt         
$hGui = GUICreate("Progress not updating properly", 400, 90) $Button = GUICtrlCreateButton("Start", 10, 10, 40) $hProgress = GUICtrlCreateProgress(10, 50, 380) GUISetState() While 3     Switch GUIGetMsg()         Case -3             Exit         Case $Button             _Func()     EndSwitch WEnd Func _Func()     Beep(800, 100)     Local $Timer = TimerInit()     GUICtrlSetData($hProgress, 50)     ;I'd expect the progress bar to step directly to middle (50)     ;But it does not, unless it has sufficient time to doo so with below uncommented timer loop.     ;Do     ;Until TimerDiff($Timer) > 800     InetRead("https://msdn.microsoft.com/en-us/library/windows/desktop/bb760816(v=vs.85).aspx")     Beep(600, 100)     For $i = 51 To 100         GUICtrlSetData($hProgress, $i)     Next EndFunc

So is it a blocking function or not, does it just send a message to the control, and it's handled internally, what's going on?

 

I really would not expect it to work in that fashion.


Viewing all articles
Browse latest Browse all 750

Trending Articles