Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Main thread beenden oder unbestimmte Zeit warten

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
29.11.2007, 13:32 Uhr
biggestcrunch



Hallo alle miteinander,

ich habe ein kleines Problem:

Ich würde gerne meinen main thread beenden ohne dass die Objekte in diesem gelöscht werden. Es soll also nur der childthread weiterleben.
Gibt es da eine Möglichkeit?

Oder anders: Kann ich irgendwie meinen mainthread auf unbestimmte Zeit warten lassen. Also ohne getch() oder sleep()?


Danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
29.11.2007, 13:45 Uhr
0xdeadbeef
Gott
(Operator)


Du kannst den Thread einen anderen Thread joinen lassen, dann wartet er, bis der gejointe Thread beendet wurde. Wie das genau geht, hängt von der Bibliothek ab, die du benutzt. Auf POSIX-Systemen gibt es pthread_join, die boost::thread-Klasse hat eine Methode join() und so weiter.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
29.11.2007, 13:48 Uhr
biggestcrunch



Super.
Danke.

Das versuche ich gleich mal.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
29.11.2007, 17:18 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Also für mich hört sich das nach einem ganz schwerem Designfehler im Programm an...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
29.11.2007, 17:33 Uhr
Pablo
Supertux
(Operator)


Wieso denn das?
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
29.11.2007, 19:22 Uhr
0xdeadbeef
Gott
(Operator)


Threads zu joinen ist ne ziemlich normale Sache. Das so pauschal als Designfehler zu bezeichnen scheint mir etwas unangemessen.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
30.11.2007, 11:06 Uhr
biggestcrunch



Ich wollte einfach nur meinen kleinen Datenlogger als Demon laufen lassen.

Ich habe aber jetzt einfach an einer bestimmten Stelle ein pause() eingebaut. So kann ich es im Hintergund starten und alles ist super.

Leider bin ich nicht so der C++ Guru. Ich muss also solche Probleme ein wenig "unkonventionel" lösen. :-)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
30.11.2007, 11:28 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


pause ist aber gefährlich, denn wenn du auf einer maschine z.b keine hardwarethreads hast, sondern nur softwaregesteuerte, dann warten auf einmal alle deine threads, weil das betriebsystem dir einfach den prozess schlafen legt.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: