A Delphi framework for executing multiple functions asynchronously and synchronizing them with an IAsyncCall interface.
AsyncCalls is a Delphi framework that enables asynchronous function execution, allowing time-consuming code to run in separate threads while synchronizing results later. It simplifies multi-threaded programming by providing a clean interface to manage concurrent operations without complex thread management.
Delphi developers working on Windows desktop applications who need to execute time-consuming tasks without blocking the main UI thread.
Developers choose AsyncCalls for its simplicity in abstracting thread management complexities, support for inlined VCL/main thread synchronization without TThread.Synchronize helpers, and compatibility with legacy Delphi compilers from version 5 to 10.1.
AsyncCalls – Asynchronous function call framework
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Abstracts complex thread management with a clean IAsyncCall interface, reducing boilerplate code for executing time-consuming functions asynchronously, as shown in the directory scanning example.
Supports inlined VCL calls from threads using TAsyncCalls.VCLInvoke or VCLSync, eliminating the need for TThread.Synchronize helpers and allowing direct access to local variables for UI updates.
Utilizes generics and anonymous methods for Delphi 2009+, enabling cleaner and more intuitive async programming patterns, demonstrated in the anonymous function example.
Compatible with Delphi 5 through 10.1 on Win32 and Win64, making it ideal for maintaining and upgrading older Windows applications without requiring compiler upgrades.
Only supports Win32 and Win64, excluding cross-platform development with Delphi's FireMonkey or other operating systems, which limits its use in modern multi-platform projects.
No support for Delphi versions beyond 10.1, meaning developers using newer compilers might miss out on updated concurrency features or bug fixes from more recent libraries.
Focuses on simple async calls without built-in advanced features like thread pooling, exception propagation, or task cancellation, requiring manual handling for complex scenarios.