需要微秒的延迟在.NET应用程序进行节流UDP多播传输速率 [英] Need microsecond delay in .NET app for throttling UDP multicast transmission rate

查看:530
本文介绍了需要微秒的延迟在.NET应用程序进行节流UDP多播传输速率的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在写一个UDP多播客户端/服务器对在C#中,我需要50-100微秒(微秒)量级的延迟扼杀服务器的传输速率。这有助于避免显著分组丢失,也有助于保持从超载是磁盘I / O绑定的客户端。请不要建议Thread.sleep代码或Thread.SpinWait。如果我需要或者那些我不会问。

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.

我首先想到的是使用某种类型的高性能计数器,并做了简单的while()循环检查经过的时间,但我想避免这种情况,因为它感觉kludgey。会不会也盯住了CPU利用率,服务器进程?

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?

积分为一个跨平台的解决方案,即不特定的Windows。在此先感谢,伙计们!

Bonus points for a cross-platform solution, i.e. not Windows specific. Thanks in advance, guys!

推荐答案

我会用的秒表但需要一个循环

I would use stopwatch but would need a loop

读<一href="http://geekswithblogs.net/NewThingsILearned/archive/2009/07/14/measure-more-accurately-with-stopwatch.aspx"相对=nofollow>这个,以更多的扩展名添加到秒表,就像ElapsedMicroseconds

read this to add more extension to the stopwatch, like ElapsedMicroseconds

之类的东西,这可能工作太

or something like this might work too

System.Diagnostics.Stopwatch.IsHighResolution 必须

System.Diagnostics.Stopwatch.IsHighResolution MUST be true

    static void Main(string[] args)
    {
        Stopwatch sw;
        sw = Stopwatch.StartNew();
        int i = 0;

        while (sw.ElapsedMilliseconds <= 5000)
        {
            if (sw.Elapsed.Ticks % 100 == 0)
            { i++; /* do something*/ }
        }
        sw.Stop();


    }

这篇关于需要微秒的延迟在.NET应用程序进行节流UDP多播传输速率的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆