AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi EINFACHSTES Delphi-Programm blockiert Betriebssystem
Thema durchsuchen
Ansicht
Themen-Optionen

EINFACHSTES Delphi-Programm blockiert Betriebssystem

Ein Thema von little-x · begonnen am 14. Dez 2007 · letzter Beitrag vom 17. Dez 2007
Antwort Antwort
Seite 1 von 3  1 23      
little-x

Registriert seit: 13. Apr 2007
Ort: Brandenburg
60 Beiträge
 
Delphi 6 Enterprise
 
#1

EINFACHSTES Delphi-Programm blockiert Betriebssystem

  Alt 14. Dez 2007, 14:23
Hi,

erstmal Entschuldigung für den reißerischen Titel..
Jawohl, ich wollte provozieren!

Spaß beiseite ich bin wirklich ratlos.
probiert mal folgendes... Neues Programm, 1 Button rein und dessen Klickevent folgenden Code zuweisen.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
// Kreiert nix weiter als eine Schleife, die ca. 30 Sekunden läuft.
        var i: integer;
                j: integer;
begin
        i:= 0;
        j:= 0;
        while i<100000000 do
        begin
                j:=0;
                while j<300 do // bei langsamen Systemen eben ein bisschen weniger.
                begin
                        inc(j);
                end;
                inc(i);
        end;
        showmessage('fertig');
end;
Wenn ich auf Button1 klicke, reagiert mein Programm für die Zeit des Schleifendurchlaufs nicht. Das ist ok.
Wenn ich aber mal mein Programm während der Zeit, in der die Schleife durchläuft, links liegen lasse und in Windows z.B.
Start->...->Office->Excel anklicke, dann verzögert sich der Start von Excel immer über 15 sekunden, manchmal sogar so lange bis die Schleife komplett durchlaufen ist.

Andere Programme wie z.B. Firefox starten problemlos.
Es kann doch nicht sein dass in einem Multitasking-System solche banalen Algoritmen den Rest des Systems beeinträchtigen können?!

Außerdem - Während der Zeit des Schleifendurchlaufs ist immer noch ein Leerlaufprozess da mit 30% CPU-Ressourcen, außerdem DualCore... Also kanns auch nicht am ausgelasteten CPU liegen.

Außerdem II - Während ich die Schleife debugge, ist die Prozessorauslastung überhaupt nicht merklich beeinträchtigt und das Problem besteht dennoch.

Weiß jemand Rat? Oder soll ich zu VisualBasic zurückgehen Dort passiert das nämlich nicht Da gibt's DoEvents.

PS: Ein System.ProcessMessages hilft nicht, auch kein System.HandleMessage. Gibt's da noch mehr?
manchmal machts mich mürbe
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#2

Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem

  Alt 14. Dez 2007, 14:26
Was ich mich zuerst einmal Frage: Wofür um alles in der Welt brauchst Du so eine Schleife?
  Mit Zitat antworten Zitat
Adler

Registriert seit: 29. Apr 2003
Ort: Düsseldorf
30 Beiträge
 
Delphi 2006 Professional
 
#3

Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem

  Alt 14. Dez 2007, 14:31
Und bei Delphi gibt es Application.ProcessMessages ...
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.415 Beiträge
 
Delphi XE5 Professional
 
#4

Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem

  Alt 14. Dez 2007, 14:34
Ich denke, er möchte nur drauf Hinweisen das der Taskscheduler von Windows für Vordergrundprogramme
optimiert ist.

Ich denke er hat ein Server Taskscheduler erwartet, wo die Zeitverteilung effektiver läuft.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem

  Alt 14. Dez 2007, 14:38
Aber wer das ständig über DoEvents bzw. Application.ProcessMessages oder ähnliches regelt, sollte vielleicht besser bei Basic bleiben
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem

  Alt 14. Dez 2007, 14:44
Zitat von generic:
Ich denke, er möchte nur drauf Hinweisen das der Taskscheduler von Windows für Vordergrundprogramme
optimiert ist.

Ich denke er hat ein Server Taskscheduler erwartet, wo die Zeitverteilung effektiver läuft.
Das kann durcheis sein. Allerdings spricht dagegen das man das ja umstellen kann wenn es einem nicht gefällt.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
little-x

Registriert seit: 13. Apr 2007
Ort: Brandenburg
60 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem

  Alt 14. Dez 2007, 16:18
Jetzt mal halblang.
Nicht immer alles aufs Betriebssystem schieben.

Zu Euren Fragen.

Zitat:
Was ich mich zuerst einmal Frage: Wofür um alles in der Welt brauchst Du so eine Schleife?
Immer wieder selben Fragen. Aber gut: Um den Kern des Problems am einfachsten darstellen.

Zitat:
Ich denke er hat ein Server Taskscheduler erwartet, wo die Zeitverteilung effektiver läuft.
Gar nix erwarte ich. Der Taskscheduler ist ok so wie er ist. Es laufen ständig "aktive" programme, die aber nicht gleich den Start von Standardanwendungen blockieren!

Zitat:
Aber wer das ständig über DoEvents bzw. Application.ProcessMessages oder ähnliches regelt, sollte vielleicht besser bei Basic bleiben
So ein kluger Satz. Ja, ok, Du bist was besseres weil Du keine Ahnung von VB hast. Aber danke für die Hilfe. Ich bin zufrieden mit Delphi und werde deswegen sicher nicht zu VB schwenken. Aber deswegen muss man ja nicht alles toll finden. Und wer der Meinung ist, irgendein SW-Entwicklungswerkzeug wäre pauschal BESSER als ein anderes, der hat keine Ahnung vom Programmieren.

Zurück zum Thema.
Debuggt doch mal die Schleife. Während des Debuggens nehmt ihr einfach mal den Finger von der F8-Taste und lasst das Programm zwar gestartet, aber nicht weiterlaufen.


Dann Excel starten. Das MUSS funktionieren, tut es aber nicht!
Und in VB funktioniert es nun einmal, kann ja auch nichts dafür.
manchmal machts mich mürbe
  Mit Zitat antworten Zitat
Neotracer64

Registriert seit: 27. Okt 2004
292 Beiträge
 
Delphi 7 Professional
 
#8

Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem

  Alt 14. Dez 2007, 16:25
Sleep(1)
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem

  Alt 14. Dez 2007, 16:33
Zitat von little-x:
Nicht immer alles aufs Betriebssystem schieben.
Würde ich nicht tun, aber eventuell auf Dein Entwicklungssystem. Warum: ich habe Dein Problem nicht
Zitat von little-x:
Debuggt doch mal die Schleife. Während des Debuggens nehmt ihr einfach mal den Finger von der F8-Taste und lasst das Programm zwar gestartet, aber nicht weiterlaufen.
Gemacht:
Zitat von little-x:
Dann Excel starten. Das MUSS funktionieren, tut es aber nicht!
Excel startet ohne Probleme in weniger als 4 Sekunden. Egal ob im Debugmodus (angehalten oder am laufen) oder außerhalb des Debugmodus, wenn das Programm läuft.

Wo auch immer Dein Problem liegt, auf meinem Laptop (Dual-Core, Vista Ultimate, Delphi 7 & RAD Studio 2007) kann ich es nicht nachvollziehen.

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#10

Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem

  Alt 14. Dez 2007, 16:34
Zitat von little-x:
Zitat:
Aber wer das ständig über DoEvents bzw. Application.ProcessMessages oder ähnliches regelt, sollte vielleicht besser bei Basic bleiben
So ein kluger Satz. Ja, ok, Du bist was besseres weil Du keine Ahnung von VB hast. Aber danke für die Hilfe. Ich bin zufrieden mit Delphi und werde deswegen sicher nicht zu VB schwenken. Aber deswegen muss man ja nicht alles toll finden. Und wer der Meinung ist, irgendein SW-Entwicklungswerkzeug wäre pauschal BESSER als ein anderes, der hat keine Ahnung vom Programmieren.
Delphi ist pauschal besser, wüsstest du was deine Programme tatsächlich machen, dann wäre das für dich ziemlich offensichtlich.
Allein die Tatsach DASS du VB benutzt hast sagt aus, dass du entweder ein Lemming bist, der MSFT überall hinfolgt, oder eben nicht weißt was deine Programme wirklich machen.
Das folgende Zitat zeigt, dass es letzteres ist:
Zitat:
Zitat:
Ich denke er hat ein Server Taskscheduler erwartet, wo die Zeitverteilung effektiver läuft.
Gar nix erwarte ich. Der Taskscheduler ist ok so wie er ist. Es laufen ständig "aktive" programme, die aber nicht gleich den Start von Standardanwendungen blockieren!
Du hast dir eine schleife gebaut, die X Sekunden lang sämtliche Zyklen fressen wird, die sie kriegen kann. Das heißt eine wirklich aktive Anwendung.
Es ist alles andere als überraschend, wenn andere Prozesse weniger Zyklen abkriegen...
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 00:06 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