Developer Stephen Bell from Embarcadero has a blog post up which explains how the new TTask IFuture functionality works in Delphi XE7 Firemonkey. Futures have been made available in the parallel programming library and work on Android, IOS, Windows, and Mac OSX. A future is sort of an asynchronous function that returns a result sometime later but if asked for it will return it now. So you can setup your TTask.Future to return a string or an integer for example and then continue running other code. When you go to access that string or integer variable later it will check to see if the TTask.Future has already completed (returned the data and populated the variable). If it has not returned the data or completed yet then it will synchronously wait for that asynchronous function to complete before moving on. Here is some sample code from the blog post demonstrating a Future:
OneValue: IFuture <Integer>;
OneValue := TTask.Future<Integer>(function: Integer
Result := ComputeSomething;
Sleep(1000); // delay to show status
How To Utilize Asynchonous Futures In Delphi XE7 Firemonkey On Android And IOS by Delphi XE5 XE6 XE7 XE8 10 Seattle Berlin Firemonkey, Delphi Android, Delphi IOS is licensed under a Creative Commons Attribution 4.0 International License.