Boost Thread Erstellung



  • Guten Abend (oder besser Gute Nacht/Guten Morgen)

    ich wollte, zwecks portabilität, von _beginthread auf boost::thread umsteigen. Nun hab ich aber das Problem, das ich nicht zur Compilezeit weiß, welche Threads gestartet werden sollen. Dies bestimmt der Benutzer während der Laufzeit.

    Bei _beginthread habe ich mir einfach eine Funktion geschrieben, welche das dann alles regelt und den Thread erstellt. Bei boost::thread habe ich allerdings nur Beispiele gefunden, die den Thread direkt bei der dekleration erstellen, per

    boost::thread t(ThreadFunc);
    

    Jetzt wollte ich fragen, ob es irgendeine Möglichkeit gibt, den Thread dynamisch zu erstellen, wenn er gebraucht wird.

    Danke schonmal für die Hilfe.

    MfG
    Shelling



  • Ja, nennt sich "new".

    class foo {
    public:
        void test() {
            m_thread = boost::shared_ptr<boost::thread>(new boost::thread(lala));
        }
    private:
        boost::shared_ptr<boost::thread> m_thread; // alternativ scoped_ptr wenn keine shared ownership benötigt wird
    };
    

Anmelden zum Antworten