今天電腦特別的卡,我沒當回事,但是實在是卡得不行了,我打開任務管理器,發現 iis worker process 進程已經快100%了,我之前在iis上發布了一個webservice,我就把這個網站給停止了,停止之后,cpu占用率就下來了。
網上搜索,其中一個原因是有死循環,我就知道是我寫的三個線程有問題,線程里是這樣的
while(true){
if(queue.count>0){
//處理邏輯;
}
}
就是這里,不停的在循環,所以cpu占用率很高,后來我改成這樣了
while(true){
if(queue.count>0){
//處理邏輯;
}
else{
Thread.Sleep(60*1000);
}
}
當隊列里面沒得值得時候,就不循環,這樣改了之后就好了。