1、如果WinForm程序中使用了线程,而线程调用的代码中会抛出异常,该异常没有任何Try块处理芦手。就会导致程序从主线程中跳出,导致WinForm程序突然崩溃性关闭。
2、程序读写某些外部喊哗运资源郑梁,比如数据库、串口、并口、网络等。当这些资源发生堵塞或者出现问题,有可能会导致WinForm程序长时间处于等待状态,程序就会类似于死机现象。
3、写程序的时候,程序出现逻辑错误,导致死循环,或者线程死锁。如果该程序是在主线程中,就会导致WinForm程序死机。
软件长期运行后,再点击软敬物件无响应,此时CPU占用率较高,只能通过任务管亮粗液理器强行关闭。1.首先保证C#工程版本编译后不要动,将生成的EXE拿去测试,复现问题。
2.复现问题后,通过任务管理器右键存DUMP文凳吵件。
3.将DUMP文件放回到原来保存的工程中DEBUG/Release目录下生成的EXE文件原有目录下(为了保证PDB文件和exe和dump同一目录)。
4.使用VS打开DUMP文件。
5.打开后直接点击右侧DEBUG后,关闭调试。
6.在solution上右键,属性,添加调试源程序路径,就是将源程序对应解决方案(.sln)的路径添加到这里。
肯定是你代码逻辑有问题啦~最简答的一个方法 GC.Collect()垃圾回收
最好检查一下你的所有变量的作用域
并且检查一下不要高州再循环中初判芦始化对象那样很慢
你不贴代码谁也不知道怎么回事
对象被dispose()不见得资源就全被释放了,.net依据一定机制去释放资源掘念带,对象被dispose()了也不会马上就释放资源
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)