C# C语言中的高CPU多线程#
在尝试了多线程之后,我开发了多线程。唯一的问题是,我有100%的CPU水平,我不能运行它。我对此做了大量研究,但似乎找不到解决方案,我尝试添加System.Threading.Thread.Sleep(10);但那没用。我很感激能得到的所有帮助。试试这个:C# C语言中的高CPU多线程#,c#,multithreading,cpu,C#,Multithreading,Cpu,在尝试了多线程之后,我开发了多线程。唯一的问题是,我有100%的CPU水平,我不能运行它。我对此做了大量研究,但似乎找不到解决方案,我尝试添加System.Threading.Thread.Sleep(10);但那没用。我很感激能得到的所有帮助。试试这个: private static void aaa() { Console.WriteLine("123"); } private static void Start2() {
private static void aaa()
{
Console.WriteLine("123");
}
private static void Start2()
{
for (;;)
{
try
{
Program.t = new Thread(delegate()
{
Program.aaa();
});
Program.t.Start();
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
}
catch (Exception value)
{
Console.WriteLine(value);
}
}
}
您正在无限循环中创建线程。这意味着您正试图创建无限多的线程。100%的CPU不应该是一个惊喜。这意味着什么呢?示例代码完全没有用处,因此不可能对如何操作提出建议。另外,如果您发现自己即将调用一个以GC开头的方法,请不要这样做。
private static void aaa()
{
Console.WriteLine("123");
}
private static void Start2()
{
try
{
Program.t = new Thread(delegate()
{
Program.aaa();
});
Program.t.Start();
while(t.IsAlive)
Thread.Sleep(500);
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
}
catch (Exception value)
{
Console.WriteLine(value);
}
}