title: Need microsecond delay in .NET app for throttling UDP multicast transmission rate
body: <p>I'm writing a UDP multicast client/server pair in C# and I need a delay on the order of 50-100 µsec (microseconds) to throttle the server transmission rate. This helps to avoid significant packet loss and also helps to keep from overloading the clients that are disk I/O bound. Please do not suggest Thread.Sleep or Thread.SpinWait. I would not ask if I needed either of those.</p>
  
  <p>My first thought was to use some kind of a high-performance counter and do a simple while() loop checking the elapsed time but I'd like to avoid that as it feels kludgey. Wouldn't that also peg the CPU utilization for the server process?</p>
  
  <p>Bonus points for a cross-platform solution, i.e. not Windows specific. Thanks in advance, guys!</p>