Hakawamu Geschrieben 4. August 2006 Teilen 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
setiII Geschrieben 4. August 2006 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 4. August 2006 Teilen 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Hakawamu Geschrieben 7. August 2006 Autor Teilen 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); Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Hakawamu Geschrieben 7. August 2006 Autor Teilen Geschrieben 7. August 2006 so, hab die methode jetzt als static deklariert. jetzt gehts =) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.