![]() |
Programm blockiert ganz Windows
Hi
Hab mal eine Frage, an was liegt es, dass mein Programm, wenn es etwas tut (zb per IBX Daten abruft, oder einfach ne große schleife, wo was gemacht wird) Dass das ganze Windows hängt? Der Taskmanager zb geht nur kurz auf, und das wars, Programme umschalten mit Alt Tab geht auch nicht mehr, aber wenn ein Texteditor offen ist, dann kann man in dem nach schreiben, wenn man den bereich noch gesehen hat vorher. Wenn mein Programm mit der Ausführung fertig ist dann geht wieder alles ganz normal. Wo kann ich da zum suchen anfangen? |
AW: Programm blockiert ganz Windows
Windows ist ereignisorientiert. Ereignisse erzeugen Messages. Während eines Schleifendurchlaufs werden keine Messages abgearbeitet, wenn du das nicht in dein Programm einbaust. Füge dazu in deiner Schleife mindestes ein Application.ProcessMessages ein und du wirst sehen, daß dann wieder alles abgearbeitet wird. Alternativ kannst du solche Schleifen auch in einen Thread auslagern, was für Anfänger gewöhnlich jedoch zu hohe Anforderungen stellt.
|
AW: Programm blockiert ganz Windows
Ganz blockieren ist eigentlich nicht möglich. Aber im Zusammenhang mit hoher Festplattenlast + Virenscanner kann die Verarbeitung schon sehr verzögert werden.
|
AW: Programm blockiert ganz Windows
Zitat:
Da hilfts auch nicht, im Taskmanager die Priorität des Prozesses zu verringern ... |
AW: Programm blockiert ganz Windows
Zitat:
In meinem Fall reagieren der Task Manager und das umsachalten IM WINDOWS mit zb "Alt Tab" gar nicht mehr |
AW: Programm blockiert ganz Windows
Zitat:
ABER eben auch die anderen Programm bzw eigetnlich nur das Windows System ... |
AW: Programm blockiert ganz Windows
Seit WindowsXP braucht ja Windows keine aktive Freigabe von Prozessorzeit durch den Entwickler.
Aber seltsamer weise gibt es doch immer wieder Dinge die Windows enfrieren lassen können. z.b. wenn man sich auf einem Netzwerklaufwer zum erstenmal verbindet. Oder wenn man in der Kommandozeile eine Konsolenanwendung aus einem Netzwerklaufwerk heraus startet. Oder wenn man im Explorer auf die Netzwerkressourcen klickt und er sucht....alles friert ein. Außer der Maus. Ich hasse das... |
AW: Programm blockiert ganz Windows
Zitat:
![]() Alles, soweit mir bekannt, ich kann mich auch irren ... Zitat:
|
AW: Programm blockiert ganz Windows
Zitat:
|
AW: Programm blockiert ganz Windows
Und nicht vergessen, Windows hat eine Auslagerungsdatei und die wird benutzt, auch wenn noch Speicher frei ist. Und das gibt Festplattenzugriff in nicht zwingend unerheblichem Maße. Auch dann, wenn die Daten von einem X-beliebigen anderen Datenbankserver geholt werden.
Schau doch mal, nach Einbau von Application.ProcessMessages in der Schleife, im Taskmanager nach, ob und wie sich die Nutzung des virtuellen Speichers Deines Programmes ändert. Dann siehst Du, ob auf die Festplatte zugegriffen wird. Und schau mal, ob sich die Anzahl der Seitenfehler verändert, dann wird Speicherinhalt aus der Auslagerungsdatei in den Arbeitsspeicher geholt. Und dahinter stecken Festplattenzugriffe. Ggfls. werden andere Programme aufgefordert Speicher freizugeben oder der Speicherinhalt anderer Programme wird von Windows in die Auslagerungsdatei verschoben, auch da stecken Festplattenzugriffe hinter. Wenn man sehr viel Arbeitsspeicher hat, kann man mal den Versuch starten, Windows ohne Auslagerungsdatei zu konfigurieren. Gerade bei Datenbankanwendungen habe ich wiederholt die Erfahrung gemacht, dass sie dadurch deutlich beschleunigt werden können. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07: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