Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Windows XP friert ein (https://www.delphipraxis.net/11875-windows-xp-friert-ein.html)

Arne 15. Nov 2003 18:15


Windows XP friert ein
 
Hallo Leute,
hat jemand von Euch schon mal was von einem Windows XP-Problem gehört? Meine Applikation (Delphi 4 Standard) läuft auf Windows 98, NT und Windows 2000 einwandfrei. Bei voller CPU-Auslastung (also nur, wenn der Rechner wirklich arbeiten muss) friert die Applikation auf Windows XP Professional aber ein, sobald man die Maus bewegt. Gibt es dafür vielleicht irgendwo einen Delphi- (oder Windows-)Patch?

Gruß

Arne


:wiejetzt:

Luckie 15. Nov 2003 18:21

Re: Windows XP friert ein
 
Hast du die Priorität deines Prozesses oder eines einzelnen Threads geändert?

Sharky 15. Nov 2003 18:28

Re: Windows XP friert ein
 
Hai Arne,

willkommen in der "Delphi-PRAXIS".

Was friert denn jetzt ein? Delphi oder Windows-XP? Ist mir nicht so ganz klar geworden bei der Frage.

Dagon 15. Nov 2003 20:08

Re: Windows XP friert ein
 
Um was für eine Applikation handelt es sich denn?

devnull 15. Nov 2003 20:37

Re: Windows XP friert ein
 
Hi,

also du kannst mal probiern, während die Anwendung bzw. Windows hängt, STRG-ESCAPE zu drücken. Das sollte die StartLeiste öffnen, dein Programm in den Hintergrund rücken.
Wenn das dann immer noch nicht geht, solltest du schaun, ob irgenwo Schleifen oder so nicht beendet werden ...


:wall: devnull

Arne 16. Nov 2003 13:29

Re: Windows XP friert ein
 
Erst einmal vielen Dank für die zahlreichen Antworten. Ich werde mal chronologisch darauf antworten:

Zu Lucky: Ich habe keinerlei Prioritäten geändert. Das ist eine mit Delphi erstellte EXE, die auf allen Windows-Systemen wunderbar läuft, nur eben auf XP nicht.

Zu Sharky: Weder noch. Meine mit Delphi erstellte Applikation friert ein und lässt sich nur noch mit STRG+ALT+DEL beenden. Reagiert auf gar nichts mehr.

Zu The_Master: Es ist eine 0-8-15 Applikation. Noch nicht einmal Multi-Threading. Eine einfache EXE, die aber ganz hübsch etwas zu rechnen hat und die CPU zu 100% auslastet.

Zu devnull: STRG+ESC habe ich noch nicht ausprobiert. Ehrlich gesagt weiß ich aber nicht, was das bringen soll. Ich möchte ja gerne, dass das auch auf XP läuft. Dass da noch so grobe Fehler drin sind wie nicht bendete Schleifen, glaube ich nicht. Dieselbe EXE läuft ja auf allen anderen Windows-Systemen wunderbar...

APP 16. Nov 2003 17:08

Re: Windows XP friert ein
 
Hallo Arne,
ich denke, bei Deinem Problem ist eine Ferndiagnose sehr schwierig, eher schon unmöglich.
Wenn Deine Applikation nicht sehr groß ist, bzw. Dein Code nicht "geheim" ist, könntest
Du ihn ja mal anhängen, vielleicht findet sich jemand der ihn durchsehen kann.

Ansonsten fällt mir nur noch ein Dich zu fragen, ob du Fremdkomponenten oder
selbstgeschriebene Komponenten einsetzt, oder ob Du in den Tiefen der
API-Programmierung wandelst.

Eine andere Möglichkeit wäre, Deine Applikation in der Delphi IDE unter WinXP laufen
zu lassen und im Debugger zu betrachten.

Oder Du Verringerst sukzessive die Funktion Deines Programms, oder besser, Du kommentierst alle
Berechnungen aus, und nimmst sie Schritt für Schritt wieder hinzu. Dazwischen machst Du den Test
mit der Maus, bis wieder alles einfriert, möglicherweise findest Du so das "fehlerhafte" Modul.

Sharky 16. Nov 2003 17:11

Re: Windows XP friert ein
 
Zitat:

Zitat von Arne
.... die aber ganz hübsch etwas zu rechnen hat und die CPU zu 100% auslastet....

Dann bleibt auch nicht mehr viel um die Windowsnachrichten zu verarbeiten.

Luckie 16. Nov 2003 17:18

Re: Windows XP friert ein
 
Wenn die Berechnung in einer Schleife erfolgt, ruf ab und an mal Application.Processmessages auf.

Arne 17. Nov 2003 08:46

Re: Windows XP friert ein
 
Hi Leute,
die Applikation ist zu groß und viel zu komplex, um sie jemandem zur Durchsicht zu geben (hat was mit Graphentheorie und Genetik zu tun). Ich hatte halt die Hoffnung, Euch wäre ein solcher Bug bzgl. Delphi/ XP schon mal untergekommen. Nun ja, dann hilft nichts: Dann werd' ich wohl mal ab und an ein sleep und ein ProcessMessages einbauen und weitersehen. Vielleicht hilft das ja schon.
Lustigerweise läuft es ja mit kleinen Datensätzen (also nur kurzzeitige 100% Belastung) und wenn die CPU nicht ausgelastet ist, läuft sowieso alles.

Trotzdem vielen Dank,

Arne

:hi:

Sharky 17. Nov 2003 08:51

Re: Windows XP friert ein
 
Hai Arne,

Sleep ist ganz schlecht. Denn ein Sleep hält den Thread in dem es aufgerufen wurde komplett an. Wenn Du eine Pause brauchst wäre ein Delay besser. Dafür gibt es einen Beispiel Code in der Code-Library. Wenn du für deine Berechnungen Schleifen hast wäre es sicher das beste dort mal ein Application.ProcessMessage einzufügen.

Luckie 17. Nov 2003 11:27

Re: Windows XP friert ein
 
Zitat:

Zitat von Arne
Lustigerweise läuft es ja mit kleinen Datensätzen (also nur kurzzeitige 100% Belastung) und wenn die CPU nicht ausgelastet ist, läuft sowieso alles.

Nun ja. Wenn ich in einer Schleife die Primzaheln 1 bis 10 berechnen lasse friert mein Programm auch nicht ein, lasse ioch es aber bis 100.000 rechnen schon. :roll:

stoxx 17. Nov 2003 12:46

Re: Windows XP friert ein
 
Hi Arne,

hast Du auch schonmal dran gedacht, dass Deine Hardware Komponenten nicht zusammenpassen könnten ?
Hast Du den Rechner selber zusammengebaut ?

Läuft das Programm 3DMark 2003 eine Stunde lang durch ? Hintereinanderweg ?
Wenn nicht, dann passt der Speicher nicht zum Board, oder falsche Steckplatzkartenbelegung.
Vielleicht auch ein schlechtes Netzteil ...
Klingt mir sehr danach, dass es ein Hardware Problem ist.

Vor allen Dingen das einfrieren ist wiedermal typisch für sowas :-)

Luckie 17. Nov 2003 12:47

Re: Windows XP friert ein
 
Öhm, stoxx, und das nur bei seinem Programm? :roll:

stoxx 17. Nov 2003 12:53

Re: Windows XP friert ein
 
Zitat:

Zitat von Luckie
Öhm, stoxx, und das nur bei seinem Programm? :roll:

ja welches andere Programm läuft denn noch bei ihm unter 100 Prozent Prozessorbelastung ?
Und das über längere Zeit ?
Also wenn er nicht gerade spielt ?
Also ich hab mit solchen Sachen schmerzhafte Erfahrungen machen müssen.
Hab meinen Rechner nun für meine Zwecke stabil hinbekommen.
Aber bei 3DMark läuft er nicht durch, solange man will ..
Kannste glauben....

Arne 19. Nov 2003 08:44

Re: Windows XP friert ein
 
Zur Info: Habe jetzt alle 3 Sekunden ein Application.ProcessMessages und ein Sleep(5) eingebaut. Jetzt läuft alles prima. Zwar ein wenig langsamer als vorher, dafür aber stabil. Man kann die Maus jetzt wieder bewegen, wie man will, ohne dass die Application einfriert.

Viele Grüße

Arne

:cheers:

Sharky 19. Nov 2003 08:49

Re: Windows XP friert ein
 
Hai Arne,

wofür brauchst Du denn das Sleep?

Schneehasi 19. Nov 2003 08:52

Re: Windows XP friert ein
 
Hallo erstmal :-)

Graphentheorie ... *erschauder* hört sich nach nem bösen Algo. an... ich "durfe" sowas schon mal in Java schreiben ...

hat der Algo zufällig nen Aufwand von n³ ? ;-) aber zu deinem Problem .. versuch es doch mal mit einer anderem Delphi Version zu compilen (D7) ... vielleicht hat D4 ja tatsächlich ein Problem mit irgenwas in XP ...

die Lösung mit sleep ist eine Lösung .. aber wirklich hübsch isses nicht *grins*


hf


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:17 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