【发布时间】:2021-09-26 06:44:20
【问题描述】:
仅此一项会占用大量 CPU 使用率,我需要它一直保持到函数何时被调用但对 CPU 友好
public static void Run()
{
var R1 = new Random(Guid.NewGuid().GetHashCode());
while (true)
{
try
{
if (Main.Process)
{
}
}
catch { }
}
}
优化这个的最佳方法是什么?每当我尝试运行它时,即使还没有任何功能,它也会立即占用大量 CPU 资源。
【问题讨论】:
-
能否在需要处理时对其进行重构以获取事件?
-
您的问题不包括有关
Main.Process是什么以及它是否提供一些可等待同步机制的信息。如果是这样,那么您的答案就是使用该机制而不是轮询。所以假设它没有,重复的问题是你要做的最好的事情,即在循环中放置一个小的延迟,这样你就只检查每 100、200、500 等毫秒的状态,而不是消耗 CPU。
标签: c# loops while-loop