Veröffentlicht 4. August 200619 j 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?
4. August 200619 j Ja also erstmal denk cih solltest du nen Ausschnitt aus deinem Quellcode Pasten, aber vermutlich entspricht deine Theradfunktion nicht den anforderungen
4. August 200619 j 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.
7. August 200619 j 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);
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.