Sleep-Funktion in c in den Fenstern. Gibt es eine Funktion mit einer besseren Genauigkeit gibt es?

StackOverflow https://stackoverflow.com/questions/945320

Frage

Ich habe mich gefragt, ob jemand eine bessere Schlaffunktion wußte, dass in den Fenstern in c, andere als Sleep () verwendet werden, die eine Millisekunde Eingabe nimmt und garantiert nur, dass der Eingang der Mindestbetrag der Zeit, die verstreicht. Ich bin vorbei in 1 Millisekunde, aber eigentlich eine 15-16 Millisekunden Verzögerung bekommen. Gibt es eine Möglichkeit genau eine bestimmte Ruhezeit einstellen?

War es hilfreich?

Lösung

Nein, nicht wirklich. Wenn Sie Ihr Programm sagen, zu schlafen, Sie geben den Prozessor und lassen das Betriebssystem entscheiden, was als nächstes zu tun. Sobald das Betriebssystem in der Steuerung ist, entscheidet es, wenn Ihrem Programm noch ein Stück Bearbeitungszeit zu geben. Aus diesem Grunde Sie ein Minimum angeben können, aber es gibt keine Garantie dafür, dass das Betriebssystem auf Ihren Prozess wird zu einem bestimmten Zeitpunkt wieder.

Andere Tipps

Schauen Sie in Multimedia Timer .

Schlaf nur gewährleistet, dass Ihr Prozess für nicht ausgeführt werden mindestens n Millisekunden, nicht, dass es schlafen genau n Millisekunden. Vielleicht möchten Sie einen Timer einrichten? Oder busy wait (das heißt Umfrage Queryperformancecounter in einer Schleife).

Ich würde versuchen, diesen Ansatz (busy wait) zu vermeiden, es sei denn, Sie müssen aber, bist du Zyklen Brennen und Sie Stoppen der CPU aus in niedrigeren Taktrate gesetzt wird (das heißt brennende Lebensdauer der Batterie)

Nein, es gibt keine bessere Schlaf-Funktion auf Windows, weil Millisekunden ist das Niveau der Granularität zur Verfügung. Wenn Sie weniger Zeit zum Schlafen werden Sie brauchen einen Spin-Lock von Arten zu implementieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top