I have a service application built in Delphi that works great. It does exactly what I want it to do and all is happy. All is fine until I want to run two (or more) instanc
Wrap all of your code into a class that inherits from TThread.
When your service starts it will read a number from a settings file or from the registry and create that many instances of your class.
Each instance runs independently.
To change the number of running instances you could shut down the service, edit the setting (in a file or registry) and restart the service.