gpt4 book ai didi

C# 频闪仪,Thread.Sleep

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:53:43 25 4
gpt4 key购买 nike

我正在制作连接到计算机的简单频闪仪。我有这样的循环:

double SleepTime = 1000 / Hz;

while ()
{
BlinkAll();
Thread.Sleep((int)SleepTime);
}

但这是非常不准确的。如果赫兹 = 666比 sleep 时间 = 1.5和(int) sleep 时间 = 1

这意味着在输出时我得到的是 1000Hz 而不是 666Hz 这是很大的差异。

如何解决这个问题?

附言

这个例子还是不够准确。它更好,但无论如何都不好:

double SleepTime = 1000 / Hz;
Thread.Sleep((int)SleepTime + 0.5)

最佳答案

看看NtDelayExecution (ntdll.dll) ...它似乎具有更好的粒度(单位为 100 纳秒而不是 1 毫秒),尽管我不确定这会有多大帮助,因为我认为 Windows 上的线程每个需要几毫秒的时间片。

关于C# 频闪仪,Thread.Sleep,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4636518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com