AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Code, der das Programm einfrieren lässt
Thema durchsuchen
Ansicht
Themen-Optionen

Code, der das Programm einfrieren lässt

Ein Thema von Alallart · begonnen am 12. Sep 2023 · letzter Beitrag vom 15. Sep 2023
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
 
Delphi 12 Athens
 
#8

AW: Code, der das Programm einfrieren lässt

  Alt 13. Sep 2023, 09:24
Kommt auch drauf an, was man will.

Schleifen ohne Sleep halten an und lasten CPU einen Kern hoffentlich voll aus.
Mit einem Sleep oder WaitFor würde auch angehalten, aber der Thread/Kern arbeitet mit 0%.

Standardmäßig steht das HungApp-Timeout bei 3 Sekunden.
Also nach einem Hängen von 3 Sekuunden, würde Windows das Fenster als "reagiert nicht" markieren.
Allerdings nicht sofort, aber wenn man z.B. die Maus drüber hinweg bewegt, dann wird es ganz schnell registriert.
PS: In Wirklichkeint ersetzt/erweitert Windows nicht die Form-Caption, sondern macht einen Screenshot vom Fenster, blendet das Fenster aus und stellt ein Ersatzfenster dar, mit den Scrrenshot als Hintergrund und der neuen Caption (darum zuckt das auch so "brutal", wenn das Fenster wieder reagiert und wieder ausgetauscht / neu aufgebaut wird)


Also, ein while True do begin Sleep(15 {bis 30} * MSecsPerSec); Application.ProcessMessages; end; , bzw. ein Timer mit Interval=1 und darin das Sleep, würde bereits ein schönes Hängen simulieren, wo es aber nicht permanent hängt.
OK, die Pause vielleicht doch besser anpassen, falls jemand das Setting geändert hat (HKEY_CURRENT_USER\Control Panel\Desktop : HungAppTimeout)


PS: Was auch nett ist, wäre vielleicht ein Stackoverflow, oder Ähnliches, wobei das Programm ohne Rückmeldung verreckt und wortlos verschwindet,
damit man es in der Ereignisanzeige nach dem Fehler suchen darf. (ein Eintrag unterm Programmnamen, aber vor allem der Eintrag vom WER / Windows Error Reporting)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (13. Sep 2023 um 09:36 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:01 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