PowerShell
PowerShell
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 PowerShell Downloads
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"
$success = $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..
$sock = New-Object Chilkat.Socket
# --------------------------------------------------------------
# Synchronous call returning $true/$false
$success = $sock.Connect("example.com",443,$true,5000)
# --------------------------------------------------------------
# Asynchronous call
$task = $sock.ConnectAsync("example.com",443,$true,5000)
# ...
$task.Run()
# ...
# ...
# Get the status ($true/$false) value returned by the synchronous method called in the background thread.
$success = $task.GetResultBool()
# --------------------------------------------------------------
# Synchronous call returning an integer
$count = $sock.ReceiveCount()
# --------------------------------------------------------------
# Asynchronous call
$task = $sock.ReceiveCountAsync()
# ...
$task.Run()
# ...
# ...
# Get the integer value returned by the synchronous method called in the background thread.
$count = $task.GetResultInt()
# --------------------------------------------------------------
# Synchronous call returning an string
$s = $sock.ReceiveString()
# --------------------------------------------------------------
# Asynchronous call
$task = $sock.ReceiveStringAsync()
# ...
$task.Run()
# ...
# ...
# Get the string value returned by the synchronous method called in the background thread.
$s = $task.GetResultString()
# --------------------------------------------------------------
# Synchronous call returning an object
$connection = $sock.AcceptNextConnection(5000)
# --------------------------------------------------------------
# Asynchronous call
$task = $sock.AcceptNextConnectionAsync()
# ...
$task.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).
$acceptedConnection = New-Object Chilkat.Socket
if ($task.TaskSuccess -eq $true) {
$success = $acceptedConnection.LoadTaskResult($task)
}