wwDotNetBridge.InvokeTaskMethodAsync

This method allows you to call any .NET async method - any method that returns a Task object basically - asynchronously by passing in a callback object that is called back when the async method completes or fails.

o.wwDotNetBridge.InvokeTaskMethodAsync(loCallback, loInstance, loMethod)

Parameters

loCallback
A callback object that inherits from AsyncCallbackEvents and implements

Example

* This sample demonstrates running 2 HTTP requests simultaneously
CLEAR
do wwDotNetBridge
LOCAL loBridge as wwDotNetBridge
loBridge = CreateObject("wwDotNetBridge","V4")

loClient = loBridge.CreateInstance("System.Net.WebClient")

* Optional - go through Fiddler Proxy
*loClient.Proxy = loBridge.CreateInstance("System.Net.WebProxy","http://127.0.0.1:8888",.F.)

loCallback = CREATEOBJECT("HttpCallback")

*** HTTP GET

*** execute and returns immediately
loTask = loBridge.InvokeTaskMethodAsync(loCallback, loClient,"DownloadStringTaskAsync","https://west-wind.com/wconnect/TestPage.wwd")
? loTask  && object

? "Mainline Done..."


*** HTTP POST

loClient2 = loBridge.CreateInstance("System.Net.WebClient")

lcPost = "LastName=Strahl&FirstName=Rick&Company=West+Wind+Technologies"
loBridge.InvokeMethod(loClient2,"Headers.Add","Content-Type","application/x-www-form-urlencoded")
? loBridge.cErrORMSG
loTask = loBridge.InvokeTaskMethodAsync(loCallback, loClient2,"UploadDataTaskAsync","https://west-wind.com/wconnect/TestPage.wwd",CAST(lcPost as BLOB))

? "Mainline Done..."

RETURN


DEFINE CLASS HttpCallback as AsyncCallbackEvents

*** Returns the result of the method and the name of the method name
FUNCTION OnCompleted(lvResult,lcMethod)

? "File received. Size: " + TRANSFORM(LEN(lvResult))
? SUBSTR(lvResult,1,1000)

*** Convert binary data to string (optional)
IF VARTYPE(lvResult) = "Q"
   lvResult = CAST( lvResult as M)
ENDIF

*ShowHtml(lvResult)

ENDFUNC


* Returns an error message, a .NET Exception and the method name
FUNCTION OnError(lcMessage,loException,lcMethod)
? "Error: " + lcMethod,lcMessage
ENDFUNC

ENDDEFINE

See also:

Class wwDotNetBridge

© West Wind Technologies, 2023 • Updated: 04/20/23
Comment or report problem with topic