Delphi Event-based and Asynchronous Programming
Writed by : Dalija Prasnikar, Neven Jr Prasnikar
Published date : 28/12/2020
Language : English
Web site : https://dalijap.blogspot.com/2020/11/just-released-ebook-delphi-event-based.html
Event-based programming is everywhere. Nowadays, you can hardly write any kind of application without leaning on events and messages.
This simple, yet extremely powerful mechanism is also the cornerstone of asynchronous and multithreaded programming. Without events, we would not know when some task was completed.
But, asynchronous and multithreaded programming consists of more than just handling multiple threads, protecting shared resources, and synchronization. It also includes designing and understanding program flow. That design aspect is often forgotten, taken for granted, and solving all the fine-grained nuances of multithreaded programming hogs the spotlight.
Without understanding asynchronous flow and the bigger picture it can be hard to properly solve all the other issues, including multithreading. What used to be plain spaghetti code, now becomes temporal spaghetti.
You can lose control over your objects, have bits of code creating and releasing them all over the place, even without adding multithreading into the mix. Memory leaks, crashes, and holding references to dead data long after its destruction are perfectly possible even in a singlethreaded environment.
While the starting point of this book is giving a proper introduction to event-based and asynchronous programming flow and design, it also provides the necessary implementation details, explanations and code examples needed to put those designs into practice.
Part I. - Sections 1-4 Introduction 1. The Loop Hidden complexity Peeking at the console Main event loop Event-based programming Pushmi-pullyu Game loop 2. Messaging Systems Windows messaging system Windows messaging system in VCL Custom messaging systems and patterns System.Messaging 3. Life, the Universe, and Everything Life, the Universe, and Everything Automatic memory management Interfaces Class helpers Anonymous methods and lambdas 4. Asynchronous Programming and Multithreading Asynchronous programming and multithreading Making the first dive... Application.ProcessMessages Application.ProcessMessages reentrancy problem Moving long operations to a background thread Asynchronous message dialog Tasks Futures Coming in Part II. on December 11, 2020 Part II. - Sections 5 & 6 5. Thread Safety What is thread safety anyway? The importance of thread safety Achieving thread safety Avoiding shared data Protecting shared data 6. GUI and Multithreading Main (GUI) thread Communicating with the main thread ...