AsyncCalls 2.99 – Asynchronous function calls
(2011) Andreas Hausladen
“With AsyncCalls you can execute multiple functions at the same time and synchronize them at every point in the function or method that started them. This allows you to execute time consuming code whose result is needed at a later time in a different thread. While the asynchronous function is executed the caller function can do other tasks.”
Github repo : GitHub - ahausladen/AsyncCalls: AsyncCalls – Asynchronous function call framework
Getting Full Speed with Delphi (Why Single-Threading Is Not Enough?)
(2011) Primož Gabrijelčič
"All operating systems support one thread per process (obviously) but some go further and support multiple threads in one process. Actually, most modern operating systems support multithreading (as this approach is called), the difference is just in details.
With multithreading, operating system manages multiple execution paths through the same code and those paths may execute at the same time (and then again, they may not - but more on that later).
An important fact is that processes are heavy. It takes a long time (at least at the operating system level where everything is measured in microseconds) to create and load a new process. In contrast to that, threads are light. New thread can be created almost immediately - all the operating system has to do is to allocate some memory for the stack and set up some control structures used by the kernel."
Arkadios -
Constrained Genericity for Borland Delphi
Willibald Krenn
March 2003