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
 
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
 


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 23:59 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