Book Image

Delphi High Performance

By : Primož Gabrijelčič
Book Image

Delphi High Performance

By: Primož Gabrijelčič

Overview of this book

Delphi is a cross-platform Integrated Development Environment (IDE) that supports rapid application development for Microsoft Windows, Apple Mac OS X, Google Android, iOS, and now Linux with RAD Studio 10.2. This book will be your guide to build efficient high performance applications with Delphi. The book begins by explaining how to find performance bottlenecks and apply the correct algorithm to fix them. It will teach you how to improve your algorithms before taking you through parallel programming. You’ll then explore various tools to build highly concurrent applications. After that, you’ll delve into improving the performance of your code and master cross-platform RTL improvements. Finally, we’ll go through memory management with Delphi and you’ll see how to leverage several external libraries to write better performing programs. By the end of the book, you’ll have the knowledge to create high performance applications with Delphi.
Table of Contents (16 chapters)
Title Page
Copyright and Credits
Packt Upsell


While this chapter focused on a single topic, it was still quite diverse. You've learned everything about the TThread class, which is a basis for all multithreading code in Delphi. Even the task-based approach that we'll explore in the next chapter uses TThread as a basic building block.

I have shown three different ways of creating a TThread-based, multithreading solution. A program can take complete ownership of a thread so that it is created and destroyed by the owner. This approach is best used when a thread implements a service, as in such cases the main program knows best when the service is needed.

Another way, more appropriate for background calculations, is FreeOnTerminate mode. With this approach, a thread object is immediately destroyed when a thread's Execute function exits. The thread owner can set up an OnTerminate event to catch this condition and process the result of the calculation.

Instead of writing a separate class for each background operation, we can also create...