如何使线程睡眠/阻止纳秒

时间:2014-03-27 22:37:56

标签: delphi delphi-xe5

如何阻止线程纳秒或微秒? Sleep()函数是不可能的,因为它接受毫秒,这显然不是我需要的。

2 个答案:

答案 0 :(得分:5)

使用TStopWatch class,并编写一个旋转的while循环,直到所需的滴答数(100纳秒间隔)已经过去。

 property ElapsedTicks : Int64 read GetElapsedTicks;

这不会放弃对其他线程的控制;它只会在当前线程中等待所需的时间段。会有一定程度的错误;错误的数量取决于Delphi执行每个循环所需的时间。

进一步阅读
How to Accurately Measure Elapsed Time Using High-Resolution Performance Counter

答案 1 :(得分:5)

Windows不支持nano睡眠。 Windows使用的线程调度比这更粗糙。 Windows线程量程的数量级大于纳秒级。