1. Technology
Send to a Friend via Email

Threading in Delphi

Writing multi-threaded applications with Delphi, applications that include several simultaneous paths of execution.

Delphi Thread Pool Example Using AsyncCalls
With AsyncCalls you can execute multiple Delphi functions at the same time and synchronize them at every point in the function or method that started them. Here's an example project taking advantage of the thread pool implementation with CancelAll and WaitAll.

Threaded Delphi Tasks In A Thread Pool - OTL (OmniThreadLibrary) Example
Having all your background threads running at the same time is not something Windows would be happy with. While Delphi does allow you to easily create a separate thread (by extending the TThread class) it does not provide a thread pool implementation out of the box. The OTL does - here's a sample thread pool for your background tasks implemented...

Threaded Delphi String Parser
With today machines having multiple cores, why not take advantage of the hardware and have your code execute in multiple threads. Here's a simple threaded string parser to help you start implementing your threaded tasks.

Using Multithreading In Delphi For What?
According to a recent poll I posted, more than 80% of Delphi developers who participated know how to code multithreaded Delphi applications. Let's help Delphi beginners! In what type of applications and for what purposes are you writing multithreaded code? Give us some examples of real world problems where multithreading has helped you make a......See submissions

Threading Libraries For Delphi
The time has come for you to start implementing multi-threaded code in your Delphi applications? The TThread class is too abstract for you? Why not take a look at some threading libraries for Delphi.

Synchronizing Threads and GUI in Delphi application
Multi-threading in Delphi lets you create applications that include several simultaneous paths of execution. When several threads are running in the application a question arises: how to update your GUI (user interface) as a result of a thread execution. The question lies in the TThread class Synchronize method.

Multithreaded Delphi Database Queries
To speed up data processing, for example, fetching data from the database to create reports, you can add an additional thread to fetch and operate on the result (recordset). Learn about the traps in writing Multithreaded Delphi Database Queries with dbGo (ADO).

Folder SIZE
Folder SIZE displays a tree view of subfolders within a folder, number of subfolders (with a Pie Chart of the subfolder disk space usage), subfolder sizes, and the total size of all folder contents. Multithreading makes Folder SIZE super fast.

Monitoring Registry Changes
Need to get notified about changes to the attributes or contents of a specified Registry key? Them you are ready for: Part 4 to your 'Big Brother' Delphi code toolkit.

Better Threads For The VCL
"Having a thread execute a closure is simpler and cleaner than putting application code into a TThread's Execute method...."

Creating threads straight from the WinAPI
How can I implement threads in my programs without using the VCL TThread object?

Debugging Multithreaded Deadlocks
Tips and tricks to designing your multithreaded systems and finish off with a utility, DeadlockDetection that will tell you where your application deadlocked. Code in C but the ideas are the same from Delphi.

How to interrupt a thread's execution
Let's say that once I start a thread up, I pop up a progress window that has a cancel button on it to cancel execution of the thread. How do I implement this?

Multithreading - The Delphi Way
Great "online book". Chapters: What are threads? Why use them?, ... Critical sections and mutexes... Semaphores. Data flow scheduling.

Running Queries in Threads
I have several programs that run large queries, and would like to move the query processing to one or more background threads. How can I implement this in my program?

Thread Synchronization through Critical Sections
How do we employ Critical Sections to synchronize two or more threads accessing the same data in Delphi?

Waiting for Threads
"...The threads execute fairly quickly, but I don't want the user to move on to the next task until the threads are absolutely finished..."

©2014 About.com. All rights reserved.