![]() |
Error Code 1400. Ungültiges Fensterhandle
hab ein klitzekleines problem: ich hab ne anwendung, die threads erzeugt. die beenden sich scheinbar auch alle wieder. wenn ich die anwendung allerdings beende, bekomme ich o.g. exception! wenn ich die threads nicht starte, geht alles normal! das dumme ist, dass ich den quelltext zwar posten könnte, dieser aber schon 450 zeilen lang ist! das möcht ich keinem antun! wo sind also die prinzipiellen auslöser dieser exception zu suchen?
*MFG* |
Re: Error Code 1400. Ungültiges Fensterhandle
Beende erst alle Threads bevor du dein Fenster schließst. Es kann sein, dass ein Thread noch auf Ressourcen deines fensters zugreift nachdem es schon zerstört wurde, der Prozess aber noch läuft.
|
Re: Error Code 1400. Ungültiges Fensterhandle
greifst du in den threads irgendwie auf die vcl-komponenten des forms zu ohne syncronize???
|
Re: Error Code 1400. Ungültiges Fensterhandle
die threads scheinen aber alle beendet, bevor ich das programm beende!
synchronize verwende ich bis jetzt nicht! |
Re: Error Code 1400. Ungültiges Fensterhandle
Zitat:
|
Re: Error Code 1400. Ungültiges Fensterhandle
zum einen regel ich das über globale variablen, die ich aus dem formular heraus anzeige.
aller dings verwend ich auch with form1 do begin... |
Re: Error Code 1400. Ungültiges Fensterhandle
Oder benutzt du "application.showmainform := false"? wenn du das verwendest und auf dem formular rumänderst ohne dass, das mainform vorher sichtbar war kommt auch so ein fehler mit fensterhandle. Aber ich tippe darauf das es daran liegt das du nicht syncronize benutzt. Wenn du duch einen thread am haupformular was änderst woher soll das formular dann das wissen. Und wenn du weißt dasses handle gleichzeitig ne adresse im Speicher ist, wird klar das es durchaus sein kann das du durch änderungen am mainform was im speicher änderst und dann stimmt halt das handle von irgendwas nimmer
|
Re: Error Code 1400. Ungültiges Fensterhandle
Zitat:
Zitat:
Kuck dir unbedingt mal mein Threading Tutorial an. Gerade bei Threads sollte man wissen, was man tut, sonst endet das so wie bei dir. |
Re: Error Code 1400. Ungültiges Fensterhandle
learning by doing... *g*!
der zugriff auf die globalen variablen erfolgt atomar! |
Re: Error Code 1400. Ungültiges Fensterhandle
Mit den InterLockedxxx-Funktionen?
|
Re: Error Code 1400. Ungültiges Fensterhandle
ja, die erzeugen den fehler aber nicht, das hab ich schon ausprobiert!
|
Re: Error Code 1400. Ungültiges Fensterhandle
Ich würde es trotzdem wie in meinem Tutorial mit Synchronize machen.
|
Re: Error Code 1400. Ungültiges Fensterhandle
ich werds mal versuchen!
|
Re: Error Code 1400. Ungültiges Fensterhandle
ich verwende nicht das VCL Thread Objekt!
|
Re: Error Code 1400. Ungültiges Fensterhandle
Kann ich doch nicht wissen. Dann sichere die Zugriffe mit Critical Sections ab.
|
Re: Error Code 1400. Ungültiges Fensterhandle
lassen sich die auch zur laufzeit erstellen und wenn ja dann wie?
|
Re: Error Code 1400. Ungültiges Fensterhandle
Ich verweise dich hiermit noch mal auf mein Tutorial.
Nachtrag: Du verwendest hoffentlich nicht CreateThread? |
Re: Error Code 1400. Ungültiges Fensterhandle
nein ich verwende nicht createthread.
also kann man sie nicht zur laufzeit erstellen... damit scheiden sie aus! |
Re: Error Code 1400. Ungültiges Fensterhandle
Argh, lies doch endlichmal mien Tutorial. Sicher kann man Critical Sections zur Laufzeit erstellen, anders geht es gar nicht.
|
Re: Error Code 1400. Ungültiges Fensterhandle
zur laufzeit erstellen war vielleicht der falsche ausdruck!
ich meinte wohl eher dynamisch! das, problem ist, dass ich n threads habe und auch n critical sections brauche! wie soll ich einer critical section denn bitte einen namen zuweisen???? |
Re: Error Code 1400. Ungültiges Fensterhandle
Du brauchst nur so viele CS, wie du gemeinsame Ressourcen hast. Sonst macht es ja keinen Sinn.
|
Re: Error Code 1400. Ungültiges Fensterhandle
aber da liegt ein problem: ich hab n threads, für jeden thread
eine listbox, also n listboxes. das sind ohne probleme mal 250 - 500 stück! ein thread füllt die listboxen. also nach meinem denken bräucht ich dann n cses oder nicht? |
Re: Error Code 1400. Ungültiges Fensterhandle
Bitte wie? 250 - 500 Listboxen? :shock: Wer soll das bedienen? Überdenk mal dein Design.
|
Re: Error Code 1400. Ungültiges Fensterhandle
vielleicht hat er ja 500 chaträume mit den usern der chans drin *g*
|
Re: Error Code 1400. Ungültiges Fensterhandle
die soll niemand bedienen - das machen ja eben die threads
und zwar automatisch |
Re: Error Code 1400. Ungültiges Fensterhandle
Dann nimm Stringlisten, wenn es eh keiner bedienen muss. Und die Stringlisten übergibst du als Parameter an die Threads oder so.
|
Re: Error Code 1400. Ungültiges Fensterhandle
und in allen 500 willst du was anzeigen? wo plazierst du die denn
|
Re: Error Code 1400. Ungültiges Fensterhandle
@luckie: das ändert aber doch das prinzipielle problem nicht
@Pseudemys Nelsoni: die sind nicht sichtbar |
Re: Error Code 1400. Ungültiges Fensterhandle
ja dann nehm doch wie luckie sagte TStringlist's
|
Re: Error Code 1400. Ungültiges Fensterhandle
Zitat:
Zitat:
|
Re: Error Code 1400. Ungültiges Fensterhandle
aber den zugriff auf eine stringliste muss ich doch auch schützen?
:wiejetzt: |
Re: Error Code 1400. Ungültiges Fensterhandle
Nein. wer soll denn noch drauf zugreifen außer der Thread? Auf eien Listbox greift auch Wiundows zu beim Zeichnen oder wann auch immer.
|
Re: Error Code 1400. Ungültiges Fensterhandle
aber es gibt da ja noch den einen thread, der ab und zu auf alle
listboxes zugreift, weil er die ja mit daten füllt! eigenltich alles egal, das problem hab ich zwar, aber noch nicht im code, sondern nur im hirn! das alles löst den fehler nicht aus! |
Re: Error Code 1400. Ungültiges Fensterhandle
hm ich versteh das nicht, mit ner stringlist kannst du doch genau das selbe wie mit deiner listbox machen, dürfte wohl sogar schneller sein -_-. aber wenn das dein problem nicht wahr
|
Re: Error Code 1400. Ungültiges Fensterhandle
das problem hab ich doch am anfang schon beschrieben!
|
Re: Error Code 1400. Ungültiges Fensterhandle
Also ich würde noch mal von vorne anfangen und das Konzept noch mal überdenken.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz