Announcement

Collapse
No announcement yet.

Thread ausbremsen mit sleep oder delay

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Thread ausbremsen mit sleep oder delay

    Hallo zusammen,

    ich habe das Problem, dass auf verschiedenen PCs (unter Windows Xp, 7) die Funktion sleep(1) unterschiedlich lang dauert: Auf dem Pentium4-PC von 2005 ca. 2 ms, u.a. auf einem aktuellen i3 aber 15 ms. Mit sleep() will ich zwei Threads, die für die Datenholung und -verarbeitung zuständig sind so "abbremsen", dass sie mir nicht die CPU-Last auf 100% treiben und damit das Programm nicht mehr bedienbar wird. Allerdings soll die Datenabholung (Daten von einem USB-Gerät werden eingelesen) schon alle 5 ms stattfinden.
    Ich habe sleep schon ersetzt durch GetTickCount-, MsgWaitForMultipleObjects-, PeekMessage- und Timer-Konstrukte, leider ohne Erfolg. Der 2ms-PC ist mein Entwicklungs-PC mit Delphi 7, WinXP - kann es vielleicht daran liegen? Irgendetwas, das Delphi installiert und auf den anderen PCs fehlt?
    Oder gibt es inzwischen in Windows eine andere Funktion (api) die die Ungenauigkeit von sleep nicht hat? Die 2ms würden mir reichen und ich weiss ja, dass Windows keine Echtzeit kann, aber 15 ms sind einfach zuviel.

    Vielen Dank im Voraus für Tipps.
    Peter
Working...
X