Faster than Thread.Sleep(1)?
本文关键字:Sleep than Thread Faster | 更新日期: 2023-09-27 18:31:26
我需要我的程序等待大约 1 毫秒。为此,我使用:
System.Threading.Thread.Sleep(1)
但大约慢了 10 倍。
在以下程序中:
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
for (int i = 0; i < 1000; i++ )
System.Threading.Thread.Sleep(1);
Console.WriteLine(stopWatch.ElapsedMilliseconds);
我得到作为输出:15110
.
有没有办法只停止 1 毫秒?
更新1:为什么我需要这样做
在我工作的公司里,有一台由PC控制的机器(CNC Plasma)。有人通过密码保护了配置区域,但没有人记得密码。由于密码只能通过鼠标输入,因此我正在编写一个强制暴力程序来获取该密码。
问题是我需要在每个输入的数字之间等待大约 1 毫秒。
更新2:有一个类似的问题,但没有解决:(
我认为问题在于您对Thread.Sleep
的理解。
它不会等待正好 1 毫秒。它将等待至少 1 毫秒。
根据MSDN:
操作系统不会在指定的时间内安排线程执行。
当操作系统再次选取线程时,可能已经过去了 1 毫秒以上。当您增加等待时间时,差异将不那么明显。如果迭代并等待 1 毫秒,差异可能相对较大。