Future
A significant category of operations that we would like to execute in a background thread can be summarized with the words “do something and return a result.” These operations are represented by a pattern called Future.
A Future always wraps some function. In Delphi’s Parallel Programming Library, a Future is represented by an IFuture<T>
interface, where T
is the data type returned by the function. This interface is created by calling the TTask.Future<T>
function. IFuture<T>
is derived from ITask
, so it supports all ITask
methods and properties, such as Status
, Cancel
, Wait
, and so on.
The ParallelFuture
demo shows two ways of using IFuture<T>
. In the first scenario, the code creates a Future, does some other work, and then asks the Future about the result of the calculation. If the background calculation is not yet finished, the code waits until the result is ready. That could block the user interface, so this approach should...