Wenn du die Variable Time erzeugst, und dann an einen anderen Thread übergibst, dann solltest du diese Variable mit new allozieren, ansonsten ist sie nach Beendigung des Blocks nicht mehr existent!
naja aus main heraus sollte es kein problem sein, da die funktion erst beendet wenn der thread endet .. (jedenfalls wenn man richtig programmiert hat ) bzw der thread endet wenn main endet -- class God : public ChuckNorris { };Dieser Post wurde am 31.03.2005 um 14:47 Uhr von FloSoft editiert.
[quote ao]Vielleicht hast du bei der Übergabe Mist gemacht, oder das Time-Objekt ist noch nicht fertig initialisiert (Thread läuft zu früh los) oder ... ao
Vertig initialisiert sollte es sein... [/quote] Vielleicht ist es auch schon wieder tot. Bei Nebenläufigkeiten kann man die schönsten Überraschungen erleben.
"sollte sein" war vergangenes Jahr bei uns das Tabuwort ....
Ich habs mit CreateThread gemacht und nicht mit _beginthread, weil ich mich damit besser auskenne. Ist aber im Prinzip dasselbe.
Das ist so nicht ganz richtig. _beginnthread legt intern,für den neuen Thread der mit CreateThread erzeugt wird ,eine tiddata Struktur an um die C Runtime threadsicher zu machen.
Insgesamt sollte man aber _beginthreadex nehmen(sofern man auf eine eigene tiddata Struktur angewiesen ist) weil _beginthread unter ungünstigen Umständen ein ungültiges Handle zurückliefern kann.
MfG Spacelord -- .....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.