Mikrosekunden Verzögerung .NET-app für Drosselung von UDP-multicast-übertragungsrate

Schreibe ich einen UDP-multicast-client - /server-paar in C# und ich brauche eine Verzögerung in der Größenordnung von 50 bis 100 µsec (Mikrosekunden) zum drosseln der server transmission rate. Dies hilft zur Vermeidung von erheblichen packet loss und auch hilft zu verhindern, dass eine überlastung des Kunden, die Datenträger-E/A-gebunden. Bitte nicht schlagen-Thread.Sleep oder Thread.SpinWait. Ich würde nicht Fragen, wenn ich brauchte, entweder von denen.

War mein Erster Gedanke, eine Art von einem high-performance-counter-und nicht eine einfache while () - Schleife die überprüfung der verstrichenen Zeit, aber ich möchte vermeiden, dass, wie es sich anfühlt kludgey. Wäre das nicht auch peg die CPU-Auslastung für den server-Prozess?

Bonus-Punkte für die cross-Plattform-Lösung, D. H. nicht Windows-spezifisch. Vielen Dank im Voraus, Jungs!

InformationsquelleAutor James Dunne | 2009-10-27
Schreibe einen Kommentar