我有必要 警告一下: Thread.SpinWait(10); //休眠10毫秒,性能会极差, CPU 会被占满
我这边有一个需求,不想使用 内置 Timer —— 所以需要线程休眠。
每隔10毫秒执行一次。
do{
Thread.SpinWait(10); //自旋10毫秒
Thread.Sleep(10); //休眠10毫秒
}while(true);
结果:Thread.SpinWait(10); CPU被占满 100% —— “自旋” (这个词的意思 或许就是说:没事做的时候,也要折腾一点事儿出来)。
——————————————————————
当然:
Thread.SpinWait(10); 精度准一点(没有线程的 唤醒时间,休眠10ms,实际休眠 10.001 ms)
Thread.Sleep(10); 精度差一点(有线程的 唤醒时间,休眠10ms,实际休眠 10.1 ms)