In this chapter, we have learned what we mean by the term responsive applications and how to achieve responsiveness in your applications. Even if our coverage of them was far from exhaustive, the key concepts of multi-threaded programming should now be clear. As stated, multi-threaded programming can be challenging to understand and needs some proper attention to be mastered.
You now have an understanding of how multi-threaded programming has been supported in Delphi for a long time, following the classical approach around the TThread object. We have introduced some background concepts tied to the synchronization needs that are intrinsic to this kind of scenario. You also have learned about the Parallel Programming Library (introduced with Delphi XE7) and its main elements, such as tasks and futures. You are now able to apply synchronization concepts to these elements for your usage.
In the next chapter, we are going to discuss some cross-platform services the FMX framework ...