Ich habe ein Programm, das den lieben langen Tag eine Repeat-Until-Schleife durchlaufen soll. (In der es nach Chipkarten in einem Chipkarten-Terminal sucht.) Auf dem Rechner sollen im Hintergrund aber noch andere Anwendungen laufen und darum habe ich ein Problem damit, daß diese Schleife laut Sysmon 100% Prozessorauslastung verursacht. Auch die Schleife immer zu durchlaufen per GetTickCount und IF…THEN nur z.B. alle 5 Sekunden auf den Terminal zuzugreifen hilft nicht, da selbst eine leere Repeat-Until-Schleife 100% Prozessorauslastung verursacht. Darum such ich ein echtes Delay UNBEDINGT IN DELPHI 1!
Ich bin für alle Hilfe, auch für den Hinweis etwas falsch gemacht zu haben dankbar.
Timer einsetzen
Versuch es mal mit der timer-Komponente, die in einstellbaren Zeitintervallen eine Programmroutine zum prüfen des Kartenleser aufruft. Ist keine Karte da, dann wird die Programmschleife verlassen und benutzt so keine Systemresourcen. Sollte es trotzdem Probleme geben, mail mir. Dann schau ich nach wie ich das Problem gelöst habe.
Ich habe ein Programm, das den lieben
langen Tag eine Repeat-Until-Schleife
durchlaufen soll. (In der es nach
Chipkarten in einem Chipkarten-Terminal
sucht.)
Hallo Nikolas,
löst das einsetzen der Chipkarte keinen Event oder eine Windows Message aus, mit der Du da arbeiten könntest?
Gruß,
Thomas
Hast Du Dein Problem gelöst ?
Ist das Chipkarten-Terminal an eine COM-Schnittstelle angeschlossen ?
Ich habe eimal ein Programm in Delphi geschrieben, das auf Eingaben an der COM-Schnittstelle reagiert. Es zeichnet den ganzen Tag Telefondaten auf.
Die Komponente, die ich benutzt habe ist Shareware und funktioniert super.
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]