For my link archive:
- Repository: [WayBack] GitHub – gabr42/OmniThreadLibrary: A simple and powerful multithreading library for Delphi
- My fork for pull requests: [WayBack] GitHub – jpluimers/OmniThreadLibrary: A simple and powerful multithreading library for Delphi
- [WayBack] The Delphi Geek: OmniThreadLibrary internals – OtlTask
- [WayBack] The Delphi Geek: OmniThreadLibrary internals – OtlComm
- [WayBack] Documentation – The Ultimate Delphi Threading Library
- [WayBack] Book: Parallel Programming with OmniThreadLibrary
- [WayBack] 2. Introduction to OmniThreadLibrary
- [WayBack] 3. High-level multi-threading: I needed the timed task, which you cannot name (it is always
Timed Task. - [WayBack] 4. Low-level multi-threading
- [WayBack] 5. Synchronization
- [WayBack] 6. Miscellaneous
- [WayBack] 7. How-to
- [WayBack] A. Units
- [WayBack] B. Demo applications
- [WayBack] C. Examples
- [WayBack] D. Hooking into OmniThreadLibrary
- [WayBack] E. ForEach internals
- [WayBack] The Delphi Geek: Parallel Programming with OmniThreadLibrary – the book is here!
IOmniTimedTask and the Timed task name
You create a reference like this:
TimedTask := Parallel.TimedTask.Execute( procedure(const task: IOmniTask) begin // ... end);
In the background, Parallel.TimedTask calls TOmniTimedTask.Create() which calls CreateTask(TOmniTimedTaskWorker.Create(), 'Timed task').Unobserved.Run
The problem is that TOmniTimedTaskWorker is private to the OtlParallel unit, which means you cannot take that call out without also copying that class.
There might be a workaround which I need to research based on the Apply method of IOmniTaskConfig, maybe through Parallel.ApplyConfig. These links might help:
- [WayBack] 3. High-level multi-threading: 3.3 Task configuration
- [WayBack] The Delphi Geek: Configuring background OtlParallel tasks
- [WayBack] Delphi-OmniThreadLibrary/test_47_TaskConfig.pas at master Β· ghquant/Delphi-OmniThreadLibrary Β· GitHub
–jeroen






