2016-04-07 5 views

Antwort

5

Sie müssen wie std::thread mit einem Funktionszeiger schaffen

void aClass::start(){ 
    thread serviceth(&aClass::startService, this); 
} 

, um einen Thread zu erstellen. Jedoch stoßen wir auf ein anderes Problem damit. Direkt nachdem der Thread erstellt wurde, endet die Funktion und der Thread wird zerstört. Da der Thread in einem verknüpfbaren Zustand ist (join() oder detach() wurde nie aufgerufen) wird der Destruktor des Threads eine Ausnahme auslösen.

Sie könnten serviceth ein Mitglied von aClass machen, so dass der Thread ausgeführt werden kann, während die Klasse vorhanden ist.

+0

sogar so gibt es mir Fehler. Ich werde morgen zeigen, wenn ich Zugriff auf den Code habe. – int3

+0

beenden ohne aktive Ausnahme aufgerufen:/ – int3

+0

Calling Detach funktioniert. hey, und wie kann ich ein Objekt als Parameter an die Funktion übergeben? 'thread w (& aClass :: waitThis, this, cc);' wo 'cc' ein Objekt ist? – int3

Verwandte Themen