I am writing a book about the OmniThreadLibrary called Parallel Programming with OmniThreadLibrary.
Read more about it on my blog.
Next in line are the articles on high-level threading constructs: Parallel.Async (another), Parallel.Future (exception handling), Parallel.Join, Parallel.ParallelTask, Parallel.ForEach, Parallel.Pipeline (exception handling), Parallel.ForkJoin, Parallel.BackgroundWorker, Parallel.TaskConfig.
You should also take a look at my articles dealing with multithreading problems from real life.
FastMM in Depth – presentation (pps, pdf), code (zip)
Parallel Programming Made Easy – presentation (pps, pdf), code (zip)
Building Multithreaded Solutions with OmniThreadLibrary – presentation (pps, pdf), code (zip)
Alternatively, you can open all my OmniThreadLibrary related articles in one go.
The simplest possible OmniThreadLibrary threading code.
Threaded "Hello, World" with TOmniEventMonitor component created in runtime.
Hello, World with bidirectional communication; TOmniEventMonitor created in runtime.
Threaded "Hello, World" with TOmniEventMonitor component on the form.
Hello, World with bidirectional communication; TOmniEventMonitor component on the form.
Hello, World with bidirectional communication, the OTL way.
Obsolete, almost totally equal to the demo 5_TwoWayHello_without_loop.
Demonstrates .WaitForInit, .ExitCode, .ExitMessage, and .SetPriority.
Demonstrates creation of additional communication channels.
Simple communication subsystem tester.
Full-blown communication subsystem tester. Used to verify correctness of the lock-free code.
Thread pool demo.
Demonstrates exception catching.
Demonstrates .TerminateWhen and .WithCounter.
Task group demo.
Demonstrates .MsgWait and Windows message processing inside tasks.
Calling task methods by name and address.
Benchmarks various was of task method invokation.
Parallel QuickSort demo.
Demonstrates the use of anonymous methods as task workers in Delphi 2009.
Tests for .Terminate and .Terminated.
Demonstrates file scanning in a background thread.
Demonstrates how to create a connection pool with OmniThreadLibrary.
Demo for ReceiveWait and SendWait.
How to run multiple event monitors in parallel.
Parallel tree processing.
Demo for the new hook system.
Demo for OnMessage and OnTerminated, named method approach.
Demo for OnMessage and OnTerminated, anonymous method approach.
Demo for the new RegisterWaitObject/UnregisterWaitObject API.
Stress test for new TOmniBaseQueue and TOmniQueue.
Stress test for new TOmniBlockingCollection, also demoes the use of Environment to set process affinity.
Parallel tree scan using TOmniBlockingCollection.
Parallel tree scan using Parallel.ForEach (Delphi 2009 and newer).
ParallelJoin: Parallel.Join demo.
Ordered parallel for loops.
Very simple parallel graphics demo.
Multistage parallel processes.
Stress test for TOmniMessageQueue.
Demo for IOmniTask.Invoke.
QuickSort implemented using Parallel.ForkJoin.
Max(array) implemented using Parallel.ForkJoin.
Demo for Parallel.Async.
Demo for task configuration with Parallel.TaskConfig.
Exception handling in high-level OTL constructs.
Multiple frames each communication with own worker task.
Wrapping arrays, hashes and records in TOmniValue.
Pipeline stress test by [Anton Alisov].
Demo for the Parallel.BackgroundWorker abstraction.
Demo for the Async/Await abstraction.
Lock manager (IOmniLockManager<K>) demo.
Demonstrates progress bar updating from a ForEach loop.
Simplified 'run & invoke' low-level API.
Simple and fast parallel for.
Speed comparison between Parallel.ForEach, Parallel.For, and TParallel.For (XE7+).
Demo for the TWaitFor class.
Demonstrates the Parallel.Map abstraction.
Demonstrates the TOmniBlockingCollection.ToArray<T> method.