Visual Studio调试时失去响应的解决办法

之前的之前的很久以前写一个小东东时不知道是代码问题还是VS的问题,调试的时候老是整个系统都失去响应

  • 所有窗口失去响应
  • 但实际上程序还在运行(比如播放器在放,解压文件的操作也在继续),仅仅界面无法刷新
  • 开始菜单失去响应
  • 任务栏失去响应,任务管理器无法启动(无论是【CTRL + SHIFT + ESC】还是【CTRL + ALT + DELETE】)
  • 除了重启或者注销不能做其他任何事情

网上一查也有很多人有这情况,最后把问题锁定在多线程调试上,因为我的VS在单线程程序调试上之前是没问题的。

根据挂掉记录统计觉得我应该也是多线程调试的问题。(还有一种感觉是不是我代码哪里有问题?但仔细看了又看看不出什么问题)

在找到的各种办法中发现下面的方法效果好一点:

  1. 启动调试之前不要将断点下在任务线程上,或者尽量少下。
  2. 然后在需要进入线程调试时在主线程下个断点。使得VS中断所有线程中断
  3. 这时再到工作线程上加个断点,然后F5就等待到工作线程中断吧!

这样确实好一点,不过还是有时挂掉。

后来在一个意外中发现只要结束掉VS即可解决这种问题!,百分百有效。

     然后就想了个投机的点子,写个小东东,在Closing时拒绝Close……

     遇到这种失去响应的情况就直接选择关机或者注销,然后系统会关闭所有应用程序(用礼貌的方式,即询问你是否可以退出了),关到我那个东东时傻眼了,因为拒绝关闭! 而不知为什么我那东东每次都是最后关的,所以VS就先被解决掉了。然后系统又恢复了。不过好多系统进程也被杀了……

另外一个解决办法就是用输出日志的方式来调试!

其实,最好的办法就是再看看代码!

     我很怀疑是不是线程间死锁的问题,或者我的线程导致VS调试器失去响应。因为这个问题肯定是VS调试器造成的。但我那个东东后来就没怎么调试了,用日志调试的。是不是线程死锁,在哪儿锁死了也没查出来,╮(╯▽╰)╭

 

最后看看在那种情况下有什么奇妙的景象!

 

    

posted @   eager eagle  阅读(4466)  评论(9编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示