Multithreading support has been built into Delphi since its inception.
The very first 32-bit version, Delphi 2, introduced a TThread
class. At that time, TThread
was a very simple wrapper around the Windows CreateThread
function. In later Delphi releases, TThread
was extended with multiple functions and with support for other operating systems, but it still remained a pretty basic tool.
The biggest problem with TThread
is that it doesn't enforce the use of any programming patterns. Because of that, you can use it to create parallel programs that are hard to understand, hard to debug, and which work purely by luck. I should know—I shudder every time I have to maintain my old TThread
-based code.
Still, the TThread
approach can be very effective and completely readable, provided that you use it correctly. On the next pages, I'll firstly show the basic TThread
usage patterns and then improve the basic approach by introducing the communication techniques into the old framework.
A TThread...