求救:C#进程中的while(true)如何释放50%的CPU
在C#的某一个进程中,需要用到while(true){},可是这样cpu就是50%,如何在进程中使用这样死循环而不过分占用CPU呢?我考虑到线程异步调用,可是还是不能很好的解决。private void ThreadProc()
{
while (true)
{
....
....
}
}
高手教我一下! --------------------编程问答-------------------- 我就经常写while(true),
关键是while(true)里面是怎么写的。 --------------------编程问答-------------------- 用Application.DoEvents();
while (true)
{
Application.DoEvents();
}
--------------------编程问答-------------------- 优化里面的具体操作吧 --------------------编程问答-------------------- 我请教的就是,while(true)里面怎么和进程外面联系起来,使其不占用50%的CPU,考虑到进程挂起,外部异步消息调用在继续执行该进程,可是这样在出C++可以做到,C#我就伤脑筋了 --------------------编程问答--------------------
while (true)
{
Application.DoEvents();
Thread.Sleep(1);
}
看你里面怎么写才是重点 --------------------编程问答-------------------- 使用委托递归。死循环可以分解为无穷递归。分解成小函数来执行。 --------------------编程问答-------------------- Thread.Sleep(10); --------------------编程问答-------------------- Thread.Sleep(100000000000000); --------------------编程问答--------------------
我一般都开一个线程,然后加这一句 --------------------编程问答-------------------- Sleep()是不行了,影响程序运行,至于“使用委托递归。死循环可以分解为无穷递归。分解成小函数来执行。”可以考虑,谢谢,我试试。。。 --------------------编程问答-------------------- 无穷递归要溢出吧 --------------------编程问答-------------------- 用Idle吧
--------------------编程问答-------------------- 加Application.DoEvents();只会浪费时间。如果是主线程。还好些。
Application.Idle += delegate
{
//while里的代码
Console.WriteLine("CPU Idle");
};
补充:.NET技术 , C#