现象:
1.cpu占用不高,内存有充足剩余,但是界面很卡;
2.内存不断增长;
3.线程数不断增长;
解决:
1.有些代码在界面主线程中执行时间较长的任务,这种情况用线程来处理;还有些地方在循环执行某些任务,若不适合用线程处理,可以考虑Application.DoEvents();
2.主要是集合,不能无限制的.Add,加到一定数量删除旧数据;另外,注意非托管代码的内存泄露的排查;
3.首先关注timer,可以在开始处stop结束处start来防止重入;其次,排查循环或定时代码中有没有新建线程或异步代码(比如BeginInvoke、Task之类的)。
原文:https://www.cnblogs.com/chixiner/p/13158059.html