Hakawamu Geschrieben 4. August 2006 Geschrieben 4. August 2006 Ich möchte in c++ Threads verwenden. d.h. ich möchte die selbe >methode< 2 mal laufen haben, dass sie auf die selben daten (eigenschaften des objektes) zugreifen kann. (geht um socket client-server geschichten) die übliche c-variante mit posix-threads funktioniert leider nicht. der g++-4.0.2-compiler liefert mir immer folgende fehlermeldung: ManageSocket.cpp:78: error: argument of type 'void* (ManageSocket:(void*)' does not match 'void* (*)(void*)' scheint daher zu kommen, dass er keine void*-funktion bekommst sondern eine "void*-methode". hat jemand eine idee?
setiII Geschrieben 4. August 2006 Geschrieben 4. August 2006 Ja also erstmal denk cih solltest du nen Ausschnitt aus deinem Quellcode Pasten, aber vermutlich entspricht deine Theradfunktion nicht den anforderungen
Klotzkopp Geschrieben 4. August 2006 Geschrieben 4. August 2006 scheint daher zu kommen, dass er keine void*-funktion bekommst sondern eine "void*-methode".Richtig. Das wird dir aber mit jeder anderen Thread-Bibliothek auch passieren. Nur globale Funktionen und statische Methoden eignen sich als Threadfunktionen. Nichtstatische Methoden brauchen immer den Zeiger auf die Instanz (this), der verdeckt übergeben wird.
Hakawamu Geschrieben 7. August 2006 Autor Geschrieben 7. August 2006 also im moment hab ich's so: deklaration: class ManageSocket { public: void *handleClient(void *client); ... }; definition: void *ManageSocket::handleClient(void *client) { return NULL; } aufruf: pthread_create(&tid, NULL, handleClient, (void*)&client);
Hakawamu Geschrieben 7. August 2006 Autor Geschrieben 7. August 2006 so, hab die methode jetzt als static deklariert. jetzt gehts =)
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden