![]() |
EINFACHSTES Delphi-Programm blockiert Betriebssystem
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:
Wenn ich auf Button1 klicke, reagiert mein Programm für die Zeit des Schleifendurchlaufs nicht. Das ist ok.
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 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 :lol: Dort passiert das nämlich nicht :roll: Da gibt's DoEvents. PS: Ein System.ProcessMessages hilft nicht, auch kein System.HandleMessage. Gibt's da noch mehr? |
Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem
Was ich mich zuerst einmal Frage: Wofür um alles in der Welt brauchst Du so eine Schleife?
|
Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem
Und bei Delphi gibt es Application.ProcessMessages ...
|
Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem
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. |
Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem
Aber wer das ständig über DoEvents bzw. Application.ProcessMessages oder ähnliches regelt, sollte vielleicht besser bei Basic bleiben :mrgreen:
|
Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem
Zitat:
|
Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem
Jetzt mal halblang.
Nicht immer alles aufs Betriebssystem schieben. Zu Euren Fragen. Zitat:
Zitat:
Zitat:
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. |
Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem
Sleep(1)
|
Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem
Zitat:
Zitat:
Zitat:
Wo auch immer Dein Problem liegt, auf meinem Laptop (Dual-Core, Vista Ultimate, Delphi 7 & RAD Studio 2007) kann ich es nicht nachvollziehen. ...:cat:... |
Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem
Zitat:
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:
Es ist alles andere als überraschend, wenn andere Prozesse weniger Zyklen abkriegen... |
Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem
Würde der ganze Heckmeck nicht auch auf C-Programme zutreffen?
|
Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem
Zitat:
Das ist eigentlich der einzige Grund, warum der gleiche Code in VB die Maschine nicht genauso ausbremst. Praktisch alles außer VB würde sich genau wie Delphi-kompilierter Code verhalten. |
Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem
Hi Elvis, die Frage war eigentlich rethorisch gemeint.
Ziemlich bescheuerter Thread, wenn Du mich fragst. Is ungefähr so, als ob man reißerisch schreibt: EINFACHSTES Delphi schaltet PC aus!
Delphi-Quellcode:
Unter der Prämisse, das der vollständige Code hier nicht angegeben ist.
Procedure TForm1.Button1Click (Sender);
Begin ExitWindowsEx(shOptions, 0) End; :wall: |
Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem
Zitat:
Zitat:
|
Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem
Zitat:
MfG |
Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem
Zitat:
Zitat:
|
Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem
Zitat:
|
Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem
Falsche Antwort. Wir schließen daraus, das der von mir gepostete Quelltext nicht vollständig ist (was da steht, das kann man ja gar nicht draus schlie0en), und dann schließen wir letztendlich daraus, das er (der Quelltext) nicht so funzen tut, wie man vermutet, weil er ja nicht vollständig ist, wie ich schrieb. Der Quelltext.
|
Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem
Ok, das nächste Mal schreib ich ein bisschen ausführlicher.
Mit dem "keine Ahnung haben" meinte ich schon, dass der Rest des Codes bei Dir fehlt. ;-) Und das bei little_x noch Code fehlt, wurde sowieso schon geschrieben. :zwinker: |
Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem
Muhkuh, Du überforderst mich :stupid: ich bin zelebral derzeit unpässlich. :zwinker:
|
Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem
Zitat:
|
Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem
Zitat:
|
Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem
Zerebral wg. zelebral, um genau su sein. :freak:
|
Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem
Zitat:
|
Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem
:drunken: Touché.
Abba wir wern ot. hicks. |
Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem
Im Grunde hat mich nur dieses neunmalkluge "jeder VB-Nutzer ist doof" aufgeregt. Erinnert mich irgendwie an "Windows-Nutzer sind doof". Oder: Ich trinke Tee und keinen Kaffee, also bin ich der bessere Mensch.
Ich habe mit VB, angefangen, ja gut ok. Das ist knapp 8 Jahre her und dauerte ca. 1 Jahr.Die meiste Zeit hatte ich mit Java zu tun, seit einem Jahr bin ich gezwungen, viel mit Delphi zu arbeiten, und langsam kann ich sagen, ich kenne Delphi. Aber es sind selbst aus heutiger Sicht mit VB gute Programme entstanden. Man kann auch in VB sehr gute und effiziente Programme entwickeln, wenn jemand das kategorisch ablehnt, dann aus Unvermögen, dieses zu erkennen. Ich finde Delphi nicht schlecht. Aber man muss vor jedem Projekt entscheiden, welches die bessere Alternative ist. Wenn man natürlich einen beschränkten Horizont hat, weil man nur eine Sprache richtig gut kann, kann man natürlich auch keine Vor- oder Nachteile erkennen. Dann fallen Sätze wie Zitat:
|
Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem
Zitat:
Deine reißerische Überschrift deutete aber wirklich darauf hin, das Du ein scheuklappentragender VB-Jünger bist, der meint, VB sei das Zentrum der IT-Welt. Aber gut, es gibt genausoviele scheuklappentragende (Programmiersprache deiner Wahl)-Jünger, die meinen, (Programmiersprache deiner Wahl) sei das Zentrum der IT-Welt. |
Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem
Worum gehts hier überhaupt? PEBCAC? UIE? Application.ProcessMessages?
|
Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem
Zitat:
Ich selbst bin gar nicht einmal mehr der große Delphi-Fan, benutze es sogar kaum noch, aber das VB pauschal schlechter ist, ist nunmal ein Fakt. Sicher, ginge es um andere Sprachen, wäre ein pauschales besser/schlechter Blödsinn. Hier aber wir haben hier 2 Tools, die auf exakt das gleiche Segment zielen. Wobei Delphi an Features ein Superset von dem von VB darstellt und somit auch eigentlich ein breiteres Segment als VB bedienen kann. |
Re: EINFACHSTES Delphi-Programm blockiert Betriebssystem
Hallo,
eine Frage wurde noch gar nicht gestellt. Welches Betriebssytem verwendest du ? Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:03 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