关闭程序,却还有线程未退出

问题描述

  • 通过点击程序的方式运行时,关闭程序后,在任务管理器中却还能找到该程序的线程
  • 通过VS来运行程序,关闭程序后,VS显示调试器还在执行。
  • 这有什么问题呢? 程序没关掉,就会导致资源未释放。这样会导致再次运行程序时,程序无法正常执行(无法启动,或无法访问需要的资源)

解决办法

  • 第一步: 中断程序,顶部菜单-全部中断
  • 第二步: 找到程序执行到哪个代码段了。
    • 打开线程窗口,顶部菜单-窗口-线程 线程调试
      这时候,发现程序停在一个dll或pdb处。我们需要进入代码,按F10单步执行很多次最终会进入到代码的,不推荐。现在推荐一种简单的方法,看线程窗口可以看出来最近执行的有代码的线程,点击它就可以进去了
      或者注意看诊断工具-事件,如下图。可以看到当前执行位置,往上翻可以找到最近的执行代码。
      诊断工具-事件
    • 进入后,给代码打个断点,按F5自然就会运行到这里停下了。
  • 第三步: 单步执行,找到问题所在。个人经验,一般是有循环还在执行,这种情况,可以通过一个bool值来参与循环条件,只要在关闭程序时,改变这个bool值就可以控制程序的退出了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章