Thread Rutine in Klasse einbauen
-
Hallo!
Ich möchte gerne einen Thread von einer Funktion einer Klasse aus starten. Dabei soll die Thread Einstiegsrutine, die bei CreateThread erforderlich ist, ein Member der Klasse sein. Wie stelle ich das an?
Vielen Dank schon mal im Voraus!
Gruß, veryxRV
-
Pack das in die Klasse:
static unsigned long __stdcall threadDummy(void* instance) { static_cast<Klasse*>(instance)->Tick(); return 0; } void Tick();MfG
-
Hi!
Danke erst mal

Leider verstehe ich den Code nicht wirklich... Könntest du mir vielleicht eine Kurze Definition der Bestandteile geben? Das wäre super!

-
Du übergibst die Funktion CreateThread als Entrypoint für den Thread (lpStartAddress) und als Parameter (lpParameter) den this pointer. Dann hast du den this pointer in threadDummy in der Variablen instance drin und kannst den wieder zurückcasten.
-
Ah okay verstehe. Aber die threadDummy() ist soll als Member der Klasse integriert werden oder? So hatte ich das zumindest gemeint.
EDIT: Ja, soll sie. Hab es ausprobiert und es funktioniert
Danke noch mal!
-
Kann sie ja auch, ist ja static, also hat sie keinen impliziten this pointer.