提问人:Mansour Fahad 提问时间:10/26/2023 更新时间:10/26/2023 访问量:54
如何在不使 CPU 不堪重负的情况下捕获每一毫秒
How to Capture Each New Millisecond Without Overwhelming the CPU
问:
我在这里的要求是我需要以毫秒为单位连续更新时间,因此每经过一毫秒,我都需要捕获它并将其写入文件。我试图在一段时间内循环运行它,但我注意到该程序占用了超过 50% 的 CPU。我试图在每个周期结束时添加该方法,这导致跳过了一些毫秒。例:Thread.Sleep(1)
1698281344731
1698281344747
1698281344762
1698281344778
1698281344794
这是我的代码,希望有任何可以引导我走向正确方向的建议。
while (true)
{
long CurrentMS = GetMilliseconds();
Writer(CurrentMS);
Console.Write(CurrentMS + "\r\n");
Thread.Sleep(1);
}
答:
0赞
Jaklans
10/26/2023
#1
您可以卸载写入,使其仅在完成循环或每 x 次迭代后才进行。这样可以避免因写入磁盘而导致的任何速度变慢。最简单的方法是将字符串存储在列表中,然后在最后将它们全部写出来。
评论
0赞
500 - Internal Server Error
10/26/2023
我可以为此提供一个优化建议:只需记录初始时间戳,然后在将它们写出时从中生成以下时间戳:)
下一个:而永无止境的循环 [关闭]
评论