Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
POSIX-Threads in C++

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Lateralus
prolinux-forum-admin


Anmeldungsdatum: 05.05.2004
Beiträge: 1238

BeitragVerfasst am: 27. Sep 2005 9:52   Titel: POSIX-Threads in C++

Hi

Ich würde gerne pthreads in C++ verwenden, habe aber Probleme mit der Definition der Funktionen, welche von pthread_create() aufgerufen werden sollen:

Beispiel:
pthread.cpp:
Code:
#include <iostream.h>
#include <unistd.h>
#include <pthread.h>

class Test{
   private:
   void *do_something_else(void *arg);
   
   public:
   
   void do_something();
};

void Test::do_something(){
   pthread_t thread1;
   
   pthread_create(&thread1, NULL, do_something_else, NULL);
   sleep(20);
   pthread_kill(thread1, SIGTERM);
}

void *Test::do_something_else(void *arg){
   while(1){
      cout << "thread sleeps...\n";
      sleep(3);
   }
}


Kompilieren:
Code:
g++ -Wno-deprecated pthread.cpp
pthread.cpp: In member function `void Test::do_something()':
pthread.cpp:17: error: argument of type `void*(Test::)(void*)' does not match `void*(*)(void*)'


Wie genau müsste die Definition der Funktion statt

Code:
void *Test::do_something_else(void *arg){
...
}


aussehen?
 
Benutzer-Profile anzeigen Private Nachricht senden

hjb
Pro-Linux


Anmeldungsdatum: 15.08.1999
Beiträge: 3236
Wohnort: Bruchsal

BeitragVerfasst am: 27. Sep 2005 10:55   Titel:

Hi!

Da pthreads ein C-API ist (keine klassen), darf man natürlich keine Methoden eines Objektes aufrufen. Es sei denn, es sind statische Methoden. Dann kannst du im Wesentlichen aber auch gleich normale Funktionen nehmen.

Eine objektorientierte Thread-Klasse findet man z.B. in wxWidgets.

Gruß,
hjb
_________________
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger

Lateralus
prolinux-forum-admin


Anmeldungsdatum: 05.05.2004
Beiträge: 1238

BeitragVerfasst am: 28. Sep 2005 3:55   Titel:

Vielen Dank. (Langsam bekomme ich mit, an wen ich mich mit meinen C-Fragen wenden muss. Wink )
 
Benutzer-Profile anzeigen Private Nachricht senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy