В главном модуле программы, при потребности, создаю поток, который должен отработать и сам "умереть" (схема работает):
- Код: Выделить всё
InetThrd := TThread.Create();
InetThrd.Start;
Но в какой то момент натыкаюсь на ошибку "не достаточно памяти" при создании нового потока.
Хочу ограничить количество, например 5, а все остальные потоки пусть ждут.
Из решений нашел только два:
1. Самому контролировать количество запущенных потоков и организовать очередь (как-то влом изобретать велосипед)
2. Использовать ProcThreadPool.DoParallel из http://wiki.freepascal.org/Parallel_procedures (не уверен что это то что мне нужно)