Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Android™) Understanding Async Function Return ValuesSee more Async ExamplesExplains how to get the return value of the function called synchonously in the background thread.
// Important: Don't forget to include the call to System.loadLibrary // as shown at the bottom of this code sample. package com.test; import android.app.Activity; import com.chilkatsoft.*; import android.widget.TextView; import android.os.Bundle; public class SimpleActivity extends Activity { private static final String TAG = "Chilkat"; // Called when the activity is first created. @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 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.. CkSocket sock = new CkSocket(); // -------------------------------------------------------------- // Synchronous call returning true/false boolean success = sock.Connect("example.com",443,true,5000); // -------------------------------------------------------------- // Asynchronous call CkTask 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 CkSocket 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). CkSocket acceptedConnection = new CkSocket(); if (task.get_TaskSuccess() == true) { success = acceptedConnection.LoadTaskResult(task); } } static { System.loadLibrary("chilkat"); // Note: If the incorrect library name is passed to System.loadLibrary, // then you will see the following error message at application startup: //"The application <your-application-name> has stopped unexpectedly. Please try again." } } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.