C# 如何延迟1微秒??
Sleep最少只能1ms
我用for空循环好像不行。。直接被跳过了
------解决方案--------------------延迟1微秒的目的是?
------解决方案--------------------反问一个东西,什么设备可以延迟一微秒?
------解决方案--------------------记录下datetime.now,在while(1)里做减法判断就行了
------解决方案--------------------thread.sleep(0.1) ;
呵呵呵呵。。。不知道会不会报错
------解决方案--------------------延迟1微秒?
lz这样做的目的是什么
------解决方案--------------------
爱卿言之有理
------解决方案--------------------
1微秒是百万分之一秒,一纳秒是10亿分之一秒。0.1毫秒不等于一微秒
------解决方案--------------------需求上写的是需要延迟1微秒的,是什么功能?
------解决方案--------------------thread.sleep(0,1);
休眠。
------解决方案--------------------
你直接让需求来写代码比较好。
------解决方案--------------------这种需求要直接对CPU时钟来操作才可能做到,C#根本不能直接访问硬件,你说可行吗?
------解决方案--------------------
同意。。。
------解决方案--------------------Windows不是实时操作系统,小于系统时间片调度的延迟没有意义,就算实时操作系统,你也得考虑总线、内存、IO的延迟了。给你的建议就是根本不要延迟,你就和你的客户说延迟了,他们自己想办法验证是不是延迟了1微秒。
顺便说下,1us=0.000001s,也就是一个2GHz CPU 2000个时钟周期。理论上来说,你找一个1时钟周期执行1次的指令(比如nop)执行2000次就可以了。
------解决方案--------------------
曹版主这个回答厉害,不过人家要C#
------解决方案--------------------
C#当然也能写出来,问题是这是一个糊鬼的事情,所以根本不需要写。
------解决方案--------------------lz把“需求”翻译为Thread.Sleep,这根本就应该退回给需求去了!
------解决方案--------------------你让电脑“唉呀”地叫一声算了。
------解决方案--------------------刚查查msdn,C# 还是提供了类似的参数机制来调用的,不过就准确度而言,惨不忍睹。
public static void SleepTest()
{
int count = 1000;