停止线程充斥CPU而不会“休眠”

时间:2019-07-20 11:10:06

标签: c# multithreading cpu throttling

我有一个线程将x / y坐标发送到某些输出。如果没有Sleep(1),它将对CPU产生冲击(最小值为13%)-但是输出非常平滑。在其中存在Sleep(1)的情况下,CPU使用率下降至1%,但会感觉到轻微的停顿。我觉得我需要一个Sleep(0.5)之类的东西。只是将线程从100%的位置稍微拉回一点的东西。但是似乎无法实现毫秒级的睡眠。

1 个答案:

答案 0 :(得分:1)

您的Thread.Sleep的最大精度约为> 10毫秒。因此,如果您想获得更高的精度,则需要专用的硬件。这可以是CPU,GPU甚至是音频时钟。

如果使用CPU,您将发现工作量很大,只是为了获得正确的时间。根据您的需要,您可以选择一个。

这里还有更多信息:Most accurate timer in .NET?