With the advent of modern language features such as anonymous methods, a new opportunity has become available for Delphi developers. Instead of inheriting a new class for each task to be executed in a separate thread, a delegation mechanism has been implemented in the TThread base class. The concept is the same—I've used it to add the OnProgress event to my TSimpleThread class.
Actually, this behavior has been implemented in another class—TAnonymousThread (the System.Classes unit) and a shortcut class function have been added to TThread for convenience. TAnonymousThread inherits from TThread and basically holds a reference to the anonymous method to be executed and executes it in its Execute method.
The TThread.CreateAnonymousThread class function (available since Delphi XE) provides you with a handy way to define an anonymous method that will be executed within the TThread.Execute method.
This means the TThread class...