Visual FoxPro
Visual FoxPro
Get the LastErrorText for an Asynchronous Method Call
See more Async Examples
Demonstrates how to get the LastErrorText information for a Chilkat method called asynchronously.Chilkat Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loSocket
LOCAL lnMaxWaitMs
LOCAL loTask
lnSuccess = 0
* This example requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.
loSocket = CreateObject('Chilkat.Socket')
* The Async call simply creates the task. The "Connect" method has not yet been called.
lnMaxWaitMs = 5000
* Let's intentionally cause this connect to fail by giving it an invalid domain..
loTask = loSocket.ConnectAsync("amazonbladflakjsdflksadjf.com",443,1,lnMaxWaitMs)
IF (loSocket.LastMethodSuccess = 0) THEN
? loSocket.LastErrorText
RELEASE loSocket
CANCEL
ENDIF
* Start the background thread to run the task.
lnSuccess = loTask.Run()
IF (NOT lnSuccess) THEN
? loTask.LastErrorText
RELEASE loTask
RELEASE loSocket
CANCEL
ENDIF
* The application is now free to do anything else
* For this example, we'll simply sleep and periodically
* check to see if the Socket Connect if finished.
DO WHILE loTask.Finished <> 1
* Sleep 1 ms.
loTask.SleepMs(1)
ENDDO
* If the task completed, it means the method (in this case the Connect method) was called and returned success or failure.
IF (loTask.StatusInt <> 7) THEN
? "Task did not complete."
? "task status: " + loTask.Status
RELEASE loTask
RELEASE loSocket
CANCEL
ENDIF
* Get the success/failure of the Connect
* (This is the return value of the Connect method had it been called synchronously)
lnSuccess = loTask.GetResultBool()
IF (lnSuccess = 0) THEN
* Get the LastErrorText for the Connect method call.
* Had we called Connect synchronously, we would've simply accessed the socket object's LastErrorText property.
* Instead, we get the task object's ResultErrorText.
? loTask.ResultErrorText
ELSE
? "Connect succeeded."
ENDIF
RELEASE loTask
RELEASE loSocket