A virtual base class that manages threads. Constructor has 2 parameters:
- thread_count: the maximum number of thread that can be created by this manager.
- thread_min: (default: thread_count) the minimun number of thread that must created by this manager.
Thread manager will create thread_min upon Start() and then create up to thread_count when job count is higher than the current number of threads.
Each TickGame(), if the number of job is higher than the current number of threads, it will stop enough threads so the current count goes down to thread_min.
An default implementation of the BaseThreadManager that is fed with non-specific job, perform them and store them upon completion so you can gather the results.
DefaultThreadManager* my_worker = new DefaultThreadManager(4, 0); Ticker::Ref(my_worker); my_worker->AddJob(my_job); array<ThreadJob*> my_results my_worker->GetWorkResult(my_results);