【C#源码】微秒级延迟实现方法分享

原创 Yearn  2019-09-29 12:18:29  阅读 922 次 评论 0 条

微秒级延迟其实意义不大,但是还是有需要的,下面我自己简单实现了一个方法,如果你有更好的欢迎分享给我。

我在使用树莓派编程操作GPIO口会用到这个函数

/// <summary>
/// 微秒级延迟,会稍有偏差
/// </summary>
/// <param name="time">延迟时间,1/毫秒,0.0500/500微秒</param>
/// <returns></returns>
public static double delayUs(double time)
{
System.Diagnostics.Stopwatch stopTime = new System.Diagnostics.Stopwatch();
            
stopTime.Start();
while (stopTime.Elapsed.TotalMilliseconds < time) {}
stopTime.Stop();
            
return stopTime.Elapsed.TotalMilliseconds;
}


我自己做了个测试延迟 50微秒,可以很明显的看到其实微秒延迟除了第一次调用的时候,后面偏差还是蛮小的。

【C#源码】微秒级延迟实现方法分享


如果你要求偏差更加小可以提取函数里面的部分延迟代码和你的代码组合,尽可能的减少中间代码的操作,就可以实现更加小的偏差。


打赏
本文地址:https://www.yfyun.xin/index.php/post/34.html
版权声明:本文为原创文章,版权归 Yearn 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?