Future
A big 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". Such 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 from 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 an 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 only be used if you know that the Future...