【问题标题】:How to achieve 100% cpu load with c# code [duplicate]如何使用 c# 代码实现 100% cpu 负载 [重复]
【发布时间】:2018-03-09 23:47:23
【问题描述】:

我的任务是获取一段 c# 代码,以使我的 CPU 100% 始终如一地运行。我尝试过无限循环、大整数计算、连接许多非常长的字符串……一切要么在片刻内达到 100%,然后下降到 60%,或者根本不达到 100%。

有没有简单的代码可以做到这一点?

同样使用 Windows 10

【问题讨论】:

  • 你在使用线程吗?如果没有,那么在 CPU 上的核心数超过 1 时你将无法 100% 加载。
  • "我的任务是获取一段 c# 代码以使我的 CPU 100% 稳定运行。" 为什么?如果您想获得接近 100% 的 CPU 负载,只需使用 Prime95 之类的东西。

标签: c# windows-10 cpu limit throttling


【解决方案1】:

如前所述,您可能希望为此实现线程化。您的线程将调用包含 while(true) 循环的方法。例如:

Random rand = new Random()
List<Thread> threads = new List<Thread>();

public void KillCore()
{
     long num = 0;
     while(true)
     {
          num += rand.Next(100, 1000);
          if (num > 1000000) { num = 0; }
     }
}

public void Main()
{
     while (true)
     {
          threads.Add( new Thread( new ThreadStart(KillCore) ) );
     }
}

您不必将线程添加到列表中,但如果您在某个地方想要调用 Thread.Abort() 来杀死它们,您可能想要这样做。为此,您需要某种集合来迭代并为集合中的每个 Thread 实例调用 Abort() 方法。执行此操作的方法如下所示。

public void StopThreads()
{
     foreach (Thread t in threads) { t.Abort(); }
}

【讨论】:

  • while(true); 足以消耗 100% 的单核。 Random 完全没有必要,Random 不是线程安全的。
【解决方案2】:

使用并行来最大化 CPU 内核使用率并获得最佳线程,在每个线程内使用while(true) 创建一个无限循环,恭喜 你有 **** 你的 CPU :D

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-19
    • 1970-01-01
    • 2019-11-04
    • 2022-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-07
    相关资源
    最近更新 更多