AW: Programm blockiert ganz Windows
Zitat:
Wie gesagt es sieht bei mir auch aus wie wenn "nur" der Desktop hängt |
AW: Programm blockiert ganz Windows
Zitat:
Erst unmöglich und dann doch? Na egal... sollte mich vielleicht etwas mehr zurückhalten. gruss |
AW: Programm blockiert ganz Windows
Das passiert beim Open einer Query?
Dann mach davor doch davor ein DisableControls und danach ein EnableControls. Dazwischen vielleicht noch ein Application.ProcessMessages. Ich kann mir nicht vorstellen, dass das Open den Rechner derartig ausbremst, aber die verbundenen Controls können schon einen ganze Menge verursachen. |
AW: Programm blockiert ganz Windows
Zitat:
aber braucht dafür natürlich sehr lange zum öffnen ... |
AW: Programm blockiert ganz Windows
Zitat:
Wenn Du dann die Daten abholst könnte es etwas Last geben. Das beschriebene Verhalten finde ich sehr seltsam. Gruß K-H |
AW: Programm blockiert ganz Windows
Zitat:
|
AW: Programm blockiert ganz Windows
Also hab gerade ein kleines Testprogramm geschrieben, mit dem ich das ganze nachstellen wollte -> und siehe da
in dem Testprogramm bleibt der Desktop aktiv -> also keine Probleme, und nur mein kleines Testprogramm hängt Also muss es irgendeinen nebeneffekt von meinem Hauptprogramm sein (Aber das sind leider schon doch ein paar zeilchen ... ;) ) |
AW: Programm blockiert ganz Windows
Bist du sicher, dass du nirgends SetPriorityClass verwendest?
Durchsuche mal den gesamten Code danach... Unter umständen auch den Code deiner Fremdcontrols (falls du den Code hast) |
AW: Programm blockiert ganz Windows
Zitat:
Ich habe ja nur 25% CPU Last auf das gesammte System gesehen in dem Fall .. |
AW: Programm blockiert ganz Windows
Wenn ich deinen ersten Post lese, dann steht da:
Zitat:
Manchmal ist es bei solchen Sachen auch ganz hilfreich, wenn man sich eine Logdatei mitschreibt und quasi jeden Schritt eine Zeitaufwendigen Funktion mit einem Zeitstempel mitloggt. So kann man dann explizit die verursachende Zeile finden.
Delphi-Quellcode:
Das hab ich mal so aus dem Kopf hier geschreiben. Also wenn Fehler drin sind, reißt mir nicht den Kopf ab.
procedure log(s: string);
var tc, tdiff: Cardinal; f: Textfile; logfile: string; begin tc:=GetTickCount; tdiff:=tc-stc; logfile:=extractfilepath(application.exefile)+'log.txt'; Assingfile(f, logfile); if fileexists(logfile) then append(f) else rewrite(f); writeln(f, inttostr(tdiff)+' '+s); closefile(f); application.processmessages; end; in der unit noch die stc: Cardinal deklarieren. Und am begin der fraglichen Funktion stc:=gettickcount; und dann nach bedarf ein log('jetzt wir SQL.open ausgeführt'); setzen. Hinterher kannst du in der Logdatei recht genau sehen, wo die Zeit verbraten wurde. Möglicherweise hilft das bei der Ergründung des Problems. Wenn's sinnvoll ist, dann kann man auch noch andere Variablen mit übergeben und loggen, damit man ggf. auch auf unlogische Daten oder so prüfen kann. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz