Third-party libraries
While this book focuses almost exclusively on the out-of-the-box Delphi experience, sometimes I do point to external libraries that can simplify your programming experience. In the context of this chapter, such libraries are Spring4D (www.spring4d.org) and OmniThreadLibrary (www.omnithreadlibrary.com).
Spring4D is a multipurpose library with very limited support for parallel programming. It is, however, widely used in the Delphi community. We have talked extensively about its collection support, in Chapter 5, Fine-Tuning the Code. It can also help with thread synchronization issues.
I’ve said before that creating and destroying TCriticalSection
objects is a pain. To fix that, Spring4D introduces a Lock
record, which doesn’t require initialization. You just declare a variable of that type and then use its Enter
and Leave
methods.
Another useful Spring4D addition is the optimistic initializer, TLazyInitializer
. In the Object life cycle, section...