Muss der in einem Thread allokierte Speicher auch wieder im Thead deallokiert werden ?
-
Hi zusammen
,Also ich habe in meinem Thread, mit new speicher allokiert...Kann ich diesen nun in meinem Hauptprogramm wieder freigeben (also nicht im Thread) ? ...Oder muss das im Thread geschehen ?
-
Das kannst Du machen wo Du willst. Hauptsache: Du machst es zur richtigen Zeit und nicht doppelt.
-
Ok, dank dir!
Hab ne kleine Frage...: Wozu ist die Funktion WaitForSingleObject gut ?
Nochwas (kleines^^):
Wenn ich auf einen Button-Klick in meinem Programm einen Thread starte, um einen rechenintensiven Vorgang durchzuführen, muss ich ja verhindern, dass man zu oft auf den Button klicken kann...Das hab ich jez mittels ner Zeitdifferenz und GetTickCount gelößt, ABER:
Bei GetTickCount kann es ja (nach langer Zeit) n Überlauf geben...deswegen ist das ja nit soo gut...
Also: Kennt ihr vielleicht ne Altnernative =? Wie kann ich außerdem prüfen, ob mein Thread noch läuft ?PS: Benutze _beginthreadex(), _endthreadex() und CloseHandle()
DaNkE schonmal

-
Sry aber noch ne kl. Frage: Muss ich auf das Ende eines Threads eingelt. warten oder kann sich mein Hauptprogramm so einfach sang und klanglos verabschieden ?
-
Es wäre sinnvoll, wenn Du Dein programm "richtig" beenden würdest. Dazu gehört, dass man zuerst auf das Ende aller Threads wartet. Dies ist auch das normale Verhalten des OS... Nur die CRT ruft ein ExitProcess auf, wenn man aus der "main" rausgeht...
Siehe auch: When does a program terminate?
http://blog.kalmbachnet.de/?postid=65
-
Frägchen schrieb:
Hab ne kleine Frage...: Wozu ist die Funktion WaitForSingleObject gut ?
wird oft beim multithreading gebraucht. damit kannste den aufrufenden thread schlafen legen, bis was passiert ist oder ein time-out abgelaufen ist.
Frägchen schrieb:
Wenn ich auf einen Button-Klick in meinem Programm einen Thread starte, um einen rechenintensiven Vorgang durchzuführen, muss ich ja verhindern, dass man zu oft auf den Button klicken kann...
disable doch einfach den button nach dem klick und mach' ihn wieder aktiv, wenn die berechnung beendet ist...