Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi App hängt -> Windows tod (https://www.delphipraxis.net/178699-app-haengt-windows-tod.html)

Gruber_Hans_12345 22. Jan 2014 05:46

App hängt -> Windows tod
 
Hallo,
Ich habe folgendes Problem, ich habe ein sehr großes Projekt, und und wenn ich in der EXE Datei eine Endlosschleife habe zum Testen habe ich einen primitiven Button mit folgendem Code:
Delphi-Quellcode:
while(TRUE) do sleep(1);
Dann blockiert mein Programm, was ja klar ist.
ABER: In dieser einen EXE hängt dann das ganze Windows (getestet mit unterschiedlichen Windows System, Window 7 64Bit, Windows 8.1 64 Bit)
Das sieht dann folgender masen aus.
In meiner Anwendung steht dann in der Titelleiste ein zusätzliches (Keine Rückmeldung)
Wenn ich versuche mit Alt-Tab auf eine andere Anwendung umzuschalten, dann bekmme ich die liste der offenen Fenster angezeigt, aber es wird nicht umgeschaltet auf das nächste Fenster und ein zweiter klick mit Alt-Tab hat keinerlei wirkung ...

Der Taskmanager lässt sich öffnen, aber je nach Windows - kann es sein das er gar nicht reagiert ...

Wenn ich den selben Code 1:1 in ein neues Projekt reinkopiere starte und ausführe - dann passiert genau das was ich erwarte
Die Anwendung hängt, hat aber keinerlei auswirkung auf irgendwelche anderen Programme oder Windows selbst.

Wo nach muss ich hier nun suchen?

jaenicke 22. Jan 2014 06:05

AW: App hängt -> Windows tod
 
Vielleicht wird irgendwo die Priorität des Prozesses verändert? Wenn die höher ist und du nur einen Single-Core Prozessor hast (soll es ja noch geben), bleibt für Windows vielleicht nicht genug übrig.

Das sollte dir aber der Taskmanager ab Windows 8 sagen und vorher der kostenlose Process Monitor.

Gruber_Hans_12345 22. Jan 2014 06:16

AW: App hängt -> Windows tod
 
nein daran liegts definitiv nicht
  • rechner hat 4 kerne + HT -> 8
  • in meiner Endlosschleife kann ich sogar ein sleep(100) einbauen -> dadurch braucht der Prozess gerade mal 0,4 % CPU Leistung
  • Priorität ist auf normal, habs auch versucht das auf niedrig zu stellen, bevor ich die Endlosschleife starte ...

baumina 22. Jan 2014 06:27

AW: App hängt -> Windows tod
 
Laufen noch zusätzlich Timer oder Threads?

Gruber_Hans_12345 22. Jan 2014 06:30

AW: App hängt -> Windows tod
 
Ja ziemlich sicher
Timer sind sicher einige drinnen -> aber die dürften ja nix bekommen, sobald der Hauptthread durch ne endlosschleife blockiert ist oder?
Und laut Taskmanger sind es 9 Threads (Vermute durch Indy komponenten und sonstige zusätzlichen Komponenten)

Gruber_Hans_12345 22. Jan 2014 09:02

AW: App hängt -> Windows tod
 
Ich habe nun mal zum testen von eurekaLog diese Tools runtergeladen
DA ist ein ThreadSnapshot Tool dabei

Wenn ich das starte und mir die infos von meiner Anwendung raushole lassen wenn die normal läuft dann geht das
Sobald meine Anwenung in der Endlos while schleife hängt, Kann dieses ThreadSnapshot auch nix mehr machen und hängt oder bringt nen fehler ...

samso 22. Jan 2014 09:06

AW: App hängt -> Windows tod
 
Sehr wahrscheinlich hast Du ja die Endlos-Schleife in einen Event eingehangen. In welchen? Könntest Du nicht den kompletten Code posten, dann könnten wir auch mal testen.

Gruber_Hans_12345 22. Jan 2014 09:08

AW: App hängt -> Windows tod
 
In einem 08/15 Button Click
wie gesagt da gleiche in einer primitiven Anwendung funktioniert ja so wie ich es erwarte -> Nur die Anwendung hängt und hat keinen Einfluss auf andere Apps oder Windows selbst

samso 22. Jan 2014 09:12

AW: App hängt -> Windows tod
 
Ok, beim Click muss der Button neu gezeichnet werden. In diesem Zuge soll meist auch der Hintergrund neu gezeichnet werden. Was liegt im Hintergrund? Ein Panel, ein Formular, ...?

Gruber_Hans_12345 22. Jan 2014 09:16

AW: App hängt -> Windows tod
 
ist ein normales Panel, nur damit hat es ja nichts zu tun ...
Mir ist ja klar das das programm dann hängt wenn ich ne endllosschleife mache -> das macht mir ja eh nix aus, nur das dadurch das ganze Windows zum einfrieren kommt ist mein problem!

Und im normalen Betrieb gibt es eh keine endlosschleifen, aber sehr wohl längere Funktionen von paar skeunden bis zu ner minute, und in der zeit sollte halt das restliche windows normal laufen können!


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 Uhr.
Seite 1 von 2  1 2      

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