系统中断占用cpu100,%系统中断cpu占比100%怎么办

首页 > 实用技巧 > 作者:YD1662023-11-10 14:54:46

在开发工作中,经常会使用While循环来保证某个任务多次或始终在执行。同时也可以看到使用了While循环后Cpu消耗过高,这是因为操作系统的Cpu竞争策略引起的,而解决Cpu消耗过高的方法就是在While循环里加上Thread.Sleep(1);使当前线程休息一毫秒。即可解决该问题。

循环体异常导致循环中断该如何进行处理呢?

在程序执行过程中,通常会受到一些不可抗力因素导致异常,除了try,catch,finally以外,在while循环或者线程方法中通常使用ContinueWith方法。如下所示:

private void Test() { Task.Run(() => { while(true) { Thread.Sleep(1); //任务处理方法 } }).ContinueWite(task => { //处理异常 //继续启动Test方法 Test(); },TaskContimuationOptions.OnlyOnFaulted);//只有在发生故障时 }

ContinueWith方法就很好的解决了任务终止了的问题。如有其他办法欢迎朋友们分享!

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.