AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign IdleHandler - Mausbewegung lässt PC schneller arbeiten
Thema durchsuchen
Ansicht
Themen-Optionen

IdleHandler - Mausbewegung lässt PC schneller arbeiten

Offene Frage von "Bernhard Geyer"
Ein Thema von Phiennes · begonnen am 20. Aug 2011 · letzter Beitrag vom 20. Aug 2011
Antwort Antwort
Phiennes

Registriert seit: 1. Dez 2008
Ort: Bochum
30 Beiträge
 
#1

IdleHandler - Mausbewegung lässt PC schneller arbeiten

  Alt 20. Aug 2011, 04:13
Hi Leute,

ich programmiere ein Programm, dass Text-Dateien einliest und verarbeitet. Da es sich um eine ganze Menge solcher Dateien handelt, nutze ich den IdleHandler. Da dieser nicht alle Arbeitsschritte gleichzeitig ausführen soll, wird er durch die Variable "count" gesteuert. Dh. er erledigt jedes Mal nur einen von 5 Arbeitsschritten.

Mein Programm funtioniert soweit ganz gut. Das seltsame Problem jedoch ist, dass es sehr viel schneller funktioniert, wenn ich beim Ausführen die Maus bewege?!?

Ich hoffe ihr könnt mir helfen.

lG Phiennes


Oh Man bin ich doof....
Hab den Fehler gefunden: Wenn ich die Funktion mit "exit;" verlasse, sollte ein "Done:= false;" davor stehen^^.

Geändert von Phiennes (20. Aug 2011 um 04:23 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: IdleHandler - Mausbewegung lässt PC schneller arbeiten

  Alt 20. Aug 2011, 06:12
Bist du sicher, dass OnIdle so gut dafür ist? Ich würde für so etwas eher z.B. einen Thread benutzen...
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Phiennes

Registriert seit: 1. Dez 2008
Ort: Bochum
30 Beiträge
 
#3

AW: IdleHandler - Mausbewegung lässt PC schneller arbeiten

  Alt 20. Aug 2011, 11:15
Ne die Arbeitsschritte müssen ja alle in einer bestimmten Reihenfolge abgearbeitet werden. Ich hätte sie also auch in einer Procedure sofort bearbeiten können, aber dann würde mein Programm jedes Mal für ein paar Sekunden nicht reagieren. Dafür sind Threads doch nicht geeignet oder?

PS: Ich finde den Button nicht, wo ich die "offene Frage" als Beantwortet makieren kann.
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#4

AW: IdleHandler - Mausbewegung lässt PC schneller arbeiten

  Alt 20. Aug 2011, 11:19
Mein Programm funtioniert soweit ganz gut. Das seltsame Problem jedoch ist, dass es sehr viel schneller funktioniert, wenn ich beim Ausführen die Maus bewege?!?
Tja, wenn du die Maus bewegst, dann werden Nachrichten abgearbeitet und dein Programm landet häufiger wieder im Idle-Modus. Und jedes mal arbeitest du eine Aufgabe ab. Die Schlussfolgerung kannst du dann selbst ziehen.

Ne die Arbeitsschritte müssen ja alle in einer bestimmten Reihenfolge abgearbeitet werden. Ich hätte sie also auch in einer Procedure sofort bearbeiten können, aber dann würde mein Programm jedes Mal für ein paar Sekunden nicht reagieren. Dafür sind Threads doch nicht geeignet oder?
Doch. Da ein Thread nichts anderes ist als eine normale Prozedur, die halt "gleichzeitig" zu einer anderen ausgeführt wird. Deine Reihenfolge bekommst du, indem du eine Schleife einbaust und dann immer wieder die aktuelle Aufgabe ausführst.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#5

AW: IdleHandler - Mausbewegung lässt PC schneller arbeiten

  Alt 20. Aug 2011, 11:29
Im Idle-Handler einfach am Ende
Done := false; einfügen. Das sollte das Problem lösen.
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: IdleHandler - Mausbewegung lässt PC schneller arbeiten

  Alt 20. Aug 2011, 13:40
Im Idle-Handler einfach am Ende
Done := false; einfügen. Das sollte das Problem lösen.
Und wenn der Fragesteller auch noch die Hilfe zum OnIdle-Handler durchliest sollte auch klar sein was sein Problem ist
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:15 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