我在开发一个项目时,发现Thread.Join方法将导致CPU使用率100%。由于项目的特殊性,我是在一个线程中使用了while,并在其中又开启了一个线程,然后等其完成。这样运行后发现CPU使用率达到了100%。显然这是不允许的。
因此,在没有更好的办法之前,我使用了下面的这个方法暂时解决了问题。
int TimeCount=100;
while(Threadname.IsAlive && TimeCount>0)
{
TimeCount--;
Thread.Sleep(100); //如果设Sleep(1) 时间计数将不准,也可考虑其它记数方式。
}
......
这相当于Thread.Join(10000);这回CPU使用率就下来了。
由于本人对Thread了解不多,不知道是否还有其它更好的方法,希望大家指正。