THREAD läuft nicht
-
Hallo an alle,
hab mir ein Programm geschrieben dass nun auf einem anderen Rechner laufen soll worauf kein BCB installiert ist (siehe Beitrag: Problem beim erstellen eines endgültigen Projekts).
Das Programm startet nun auch einwandfrei nur wird der Thread nur einmal ausgeführt obwohls auf dem Rechner wo ich das Prog geschrieben hab einwandfrei läuft. Woran kann das liegen?
-
hab's jetzt umgeschrieben und mit nem Timer gelöst, warum geht das Problemlos und der Thread läuft nicht?
-
Wenn du etwas genauer beschreiben würdest, wie du den Thread programiert hast...
-
ok:
in FormCreate vom Hauptfenster:
HrdwProcess=new HWThread(false); //damit er gleich startetin der Thread Routine:
while(!Terminated) Hardware->Control();im FormDestroy vom Hauptfenster:
HrdwProcess->Terminate(); delete HrdwProcess;wie schon gesagt am Testrechner läufts super nur am Rechner wo's eigentlich laufen soll wird der Thread nur ein mal ausgeführt.
-
Wo steht denn, dass er ihn öfters ausführen soll?
-
na in der Thread Routine:
while(!Terminated) //usw.
-
Dass er nur einmal ausgeführt wird, deutet darauf hin, dass im Hardware->Control() etwas passiert, dass ihn zum Absturz bringt. Ich würde dort nach Fehler suchen.
Aber Probier zuerst Hardware->Control() auszukommentieren und schau ob der Thread dann läuft.
-
ich glaub fast nicht dass es daran liegt, weil wie schon oben geschrieben:
Auf dem Testrechner wo BCB installiert ist läufts einwandfrei, auf dem anderen System ohne BCB funkts nicht.
-
Hardware->Control hört sich nach Hardware-Zugriffen an. Bei sowas ist es besonders kritisch, vor allem wenn man unterschiedliche Hardwarekonfigurationen hat. Probier erst mal ob der Thread ohne diesen Aufruf läuft.
-
nein tut er nicht, hab ich grad ausprobiert
-
Hast du bei den Einstellungen dynamische RTLs und laufzeit-Packages weggeklickt ?
Ist es bei Debug- und Release Version genauso ?
-
Für die endgültige Version hab ichs weggeklickt. Hab damit auch schon alle Möglichkeiten ausprobiert (hab sogar ein eigenes Topic gemacht), ich weiß aber nicht worans liegen könnt. Für mich siehts so aus als ob er den Code auf dem einen Rechner verstehen würd (WinXP mit BCB) und auf dem anderen Win2000Server läufts nicht.