AutoIt
AutoIt
Understanding Async Function Return Values
See more Async Examples
Explains how to get the return value of the function called synchonously in the background thread.Chilkat AutoIt Downloads
Local $bSuccess = False
; Some Chilkat functions can be called asynchronously.
; If a function "Func" can be called asynchronously, there will be a corresponding "FuncAsync" function that returns a Task object.
;
; When Task.Run is called, the synchronous "Func" runs in a background thread.
;
; For Chilkat methods that return a status (True/False), get returned value by calling GetResultBool.
; For example..
$oSock = ObjCreate("Chilkat.Socket")
; --------------------------------------------------------------
; Synchronous call returning True/False
$bSuccess = $oSock.Connect("example.com",443,True,5000)
; --------------------------------------------------------------
; Asynchronous call
Local $oTask = $oSock.ConnectAsync("example.com",443,True,5000)
; ...
$oTask.Run()
; ...
; ...
; Get the status (True/False) value returned by the synchronous method called in the background thread.
$bSuccess = $oTask.GetResultBool()
; --------------------------------------------------------------
; Synchronous call returning an integer
Local $iCount = $oSock.ReceiveCount()
; --------------------------------------------------------------
; Asynchronous call
$oTask = $oSock.ReceiveCountAsync()
; ...
$oTask.Run()
; ...
; ...
; Get the integer value returned by the synchronous method called in the background thread.
$iCount = $oTask.GetResultInt()
; --------------------------------------------------------------
; Synchronous call returning an string
Local $s = $oSock.ReceiveString()
; --------------------------------------------------------------
; Asynchronous call
$oTask = $oSock.ReceiveStringAsync()
; ...
$oTask.Run()
; ...
; ...
; Get the string value returned by the synchronous method called in the background thread.
$s = $oTask.GetResultString()
; --------------------------------------------------------------
; Synchronous call returning an object
Local $oConnection = $oSock.AcceptNextConnection(5000)
; --------------------------------------------------------------
; Asynchronous call
$oTask = $oSock.AcceptNextConnectionAsync()
; ...
$oTask.Run()
; ...
; ...
; Get the object returned by the synchronous method called in the background thread.
; We do this a little differently. We create an new object of the same type,
; and then load it with the returned object (assuming it was not null).
$oAcceptedConnection = ObjCreate("Chilkat.Socket")
If ($oTask.TaskSuccess = True) Then
$bSuccess = $oAcceptedConnection.LoadTaskResult($oTask)
EndIf