Sample code for 30+ languages & platforms
C#

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 C# Downloads

C#
bool 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..

Chilkat.Socket sock = new Chilkat.Socket();

//  --------------------------------------------------------------
//  Synchronous call returning true/false
success = sock.Connect("example.com",443,true,5000);

//  --------------------------------------------------------------
//  Asynchronous call
Chilkat.Task 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
int 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
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
Chilkat.Socket 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).
Chilkat.Socket acceptedConnection = new Chilkat.Socket();
if (task.TaskSuccess == true) {
    success = acceptedConnection.LoadTaskResult(task);
}