Hört sich wahrscheinlich kompliziert an.
Also ich versuche mit der Funktion std::async sowas wie einen Threadpool zu machen.
Das Problem ist das ich dazu einer Funktion z. B. „void Funktion (andere Funktion mit Argumenten)“ eine andere Funktion geben muss und mit „void(*func)(void)“ bekomme ich die Argumente nicht mit rüber.
Ich habe auch schon probiert es so zu machen „void(*func)(void), void* arg“ … geht auch nicht.
Falls mir irgendwer helfen kann, wäre ich sehr dankbar über eine Antwort.
(Die std::async Funktion ist übrigens:
#include <future>
static std::vector<std::future<void>> worker;
void addWork(void(*func)())
{
worker.push_back(std::async(std::launch::async, func));
})
Es fehlen halt nur die Argumente, die sonst gehen.