ThreadPool
Объект, обозначающий пул запускаемых потоков, выполняющих идентичный код. Количество работающих потоков может автоматически регулироваться в зависимости от нагрузки.
Пример:
threadPool = new ThreadPool;
threadPool.MinThreadCount = 0;
threadPool.MaxThreadCount = 2;
threadPool.TaskHandler = new MethodReference( webhook_server_lib, 'TaskProc' );
threadPool.Start();