Wait in VB.Net diesmal aber mal Mikrosekunden GENAU!!

Gast #2115874
Lesenswert?

Hallo Leute,

Suche ein Kommando in VB.Net , mit dem ich Mikrosekunden warten kann.
Millisekunden sind mir schon klar. Würde mit Timespan gehen.

Suche aber MIKROSEKUNDEN !!!

Nun gibt es ja noch:
System.Threading.Thread.SpinWait(1000)

Aber wieviel ist ein Tick? Auch 100nS ??
#2115977
Lesenswert?

Dir ist klar das unter VB.NET bzw. Windows generell vom Userspace aus 
garkeine Möglichkeit besteht, genau zu warten?
Das Beste was du erreichen kannst, ist mindestens XXX µs zu warten, 
eben mit der Einschränkung das es auch mal länger dauert.

Zur Frage: Der Parameter bei SpinWait gibt nur eine Anzahl an 
Schleifendurchläufen an. Wie lange ein Durchlauf dauert ist nicht 
definiert, hängt z.B. von deiner CPU-Frequenz ab. Und kann deswegen auch 
ständig schwanken, weil neuere CPUs die Frequenz zum Stromsparen 
variieren.
#2116485
Lesenswert?

Hi,

was hast Du denn vor? Am besten, Du überdenkst Dein Design noch 
einmal...
Ansonsten liefern die Win32-Funktionen QueryPerformanceCounter und 
QueryPerformanceFrequency die genauesten Ergebnissse. Ein busy-wait mit 
diesen Funktionen dürfte wohl am genauesten sein, wobei jeder 
dazwischengekommene Task-Switch die ganze Aktion hinfällig werden läßt.
Für solch kleine Wartezeiten ist Windows nix...

Gruß, Oliver

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren