Autor | Thema: Schlaufe mitmöglichst wenig Systemressourcen |
| Datum:03.09.01 19:47 
(keeper@gmx.ch) | |
Hallo
Ich möchte ein Programm schreiben das immer im Hintergrund läuft und z.B. alle 5-50min eine bestimmte Befehlsreihenfolge ausführt. Wie mache ich das so das am wenigsten Systemressourcen verbraucht werden?
Wie würde das funktionieren wenn mein Programm nur immer dann reagieren sollte wenn ein bestimmter Punkt in einer Textdatei geändert wurde? Auch so das ich am wenigsten Systemressourcen verbrauche?
Vielen Dank!
Gruss
Nico
|
|
| Datum:03.09.01 20:17 
(frankabbing@12move.de) | |
Hallo Nico,
die eleganteste Methode ist, wenn du einen separaten Thread öffnest. Das ist quasi ein zweites Programm, welches von deinem ersten Programm aus gestartet wird und einen Teil deines Hauptprogrammes abarbeitet.
Mit CreateThread(...) wird er gestartet. Ich hab' leider kein Beispielprogramm in Profan, du solltest die WinAPI hierfür ausgiebig studieren.
Ist nur eine Möglichkeit, aber bestimmt die eleganteste...
Bis dahin,
Frank
|
|
| Datum:03.09.01 21:26 
(keeper@gmx.ch) | |
Wird damit die Rechenleistung weniger beansprucht?
Danke und Gruss
Nico Raschle
|
|
| Datum:05.09.01 16:32 
| |
Hi Frank,
was muß ich denn bei dem start-Parameter angeben. Was ich auch angebe, es funktioniert einfach nicht. Kannst Du nicht ein kleines Beispiel posten.
Gruß
Angie
|
|
| Datum:05.09.01 16:44 
(frankabbing@12move.de) | |
Hallo,
hab' eigentlich gar keine Zeit, aber ich versuche in den nächsten Tagen was zu improvisieren, ok?
Bis dahin,
Frank
|
|
| Datum:07.09.01 16:54 
| |
Hi Frank,
das ist kein Problem, ich wollte es nur mal ausprobieren. Bisher hielt ich es nicht für möglich, daß man mit Profan mehrere Threads nutzen kann. Aber Deine ProSpeed.dll hat mir gezeigt, daß mit Profan nichts unmöglich ist.
Gruß
Angie
|
|
| Datum:07.09.01 17:51 
(frankabbing@12move.de) | |
Hallo,
muß dich leider enttäuschen. Das mit den Threads geht leider NICHT in Profan. Es scheint keine Möglichkeit zu geben, direkte Programmadressen zu lokalisieren, weil der Profancode kein Native-Code ist, sondern nur übersetzt wird. Und die ProSpeedDll, die zwar Threads benutzt, ist aber nicht in Profan geschrieben, sondern in Assembler / Maschinencode....
Sorry!
MfG
Frank
|
|
| Datum:08.09.01 13:14 
| |
Hi Frank,
das ist aber schade:-( Kannst Du nicht in Deiner ProSpeed.dll ein paar Funktionen machen, damit auch wir armen Profaner von mehreren Threads profitieren können?
Gruß
Angie
|
|
| Datum: 08.09.01 13:47 
(frankabbing@12move.de) | |
Hallo!
Klar, würde ich schon machen, aber wie sollte sowas gehen? Das läßt sich nicht so biegen, das von der Dll aus dein Profan²-Programm abgearbeitet wird.
Aber Roland G.H. bemüht sich gerade, Threads für Profan ab Version 7.5 einzuführen. Schaun mer mal, was draus wird...
Bis dahin,
Frank
|
|
| Datum:03.09.01 22:57 
(joerse@gmx.de) | |
Hallo Nico,
Wenn Dein Programm nur alle 5 min eine Aktion starten soll,
kannst Du es so lange in den "Ruhestand" schicken.
Mit: Sleep (5 * 60) * 1000
schläft Dein Programm 5 min.
Wenn es etwas überwachen soll, kannst Du
Sleep 1 (oder 10 oder ...)
verwenden und es testet alle 1 (oder 10 oder ...) Millisekunden ob die Bedingung für die Aktion erfüllt ist.
Die Prozessorbelastung ist dabei minimal.
Viele Grüße
Jörg
|
|
| Datum:03.09.01 23:12 
(keeper@gmx.ch) | |
Danke für die raschen Antworten. Ich werde es so schnell wie möglcih ausprobieren :)
Gruss
Nico
|
|
| Datum:08.09.01 10:54 
(gs-sdl@web.de) | |
hallo Nico,
schau Dir doch mal den Befehl "SetTimer" an. Der hat die Systemressourcen in einem "Warte"-programm bei mir drastisch reduziert.
Tschüß Gert.
|
|