热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

偶然看到,也许有用!

VS2010编写的WinForm程序,在调试运行了几个小时候后弹出:正在停止调试,但尚未完成你可以强制立即停止2011-04-0616:50hsy198845

VS2010编写的WinForm程序,在调试运行了几个小时候后弹出: 正在停止调试,但尚未完成你可以强制立即停止
2011-04-06 16:50 hsy198845   |   分类:C#/.NET  |  浏览1025次
WinFrom程序是用VS2010编写调试的,多线程,并且对数据库和串口进行操作! 数据库采用连接池的机制,中间出了很多问题,并且都找出来了,数据库和串口的互斥访问也做的很好, 但是怎么运行后出现“ 正在停止调试,但尚未完成。你可以强制立即停止调试,但这可能会终止正在分离的任何进程”这个提示框出来啊?   如果不是调试,直接运行程序的话,几个小时候 程序自动关闭了!

这个是出现提示的截图,就是在程序运行后 几个小时或者  10多个小时候弹出来的错误!

不是执行一个功能要很长时间,我这个是实时监控的程序,我的意思是 程序跑了一段时间后

向左转 | 向右转

 

 

 

2011-04-06 19:13 提问者采纳
 
你用一个测CPU和内存占用率的软件,在你调试这个程序时看看你CPU和内存的使用率达到了怎样的高度。
可能的原因: 1、程序设计不合理,线程过多,达到了系统处理的极限而自动终止调试 2、有极占内存的死循环存在,检查下 3、有不安全代码(如果你是用C#编写的,这个可能性就较小了,或者说基本没有)
建议:重新检查一遍你的程序,最好拿一张白纸来边检查边画个程序流程图,画完后审视一番,问题、缺陷就一目了然了,多半还是程序设计上的不合理造成的。也可能是设计思路不佳,大方向上走偏了,这个的话就一定要把程序的前前后后在纸上设计好了之后再具体写代码。注意弄清楚你每一步的目的是要干什么,很重要的。画流程图的确是个好习惯,尤其在程序庞大、操作复杂的时候,擅画流程图将带来很大好处,不仅帮忙理清思路提高程序编写的效率,而且极大减少了错误的发生。
祝你好运咯~~
追问
谢谢 云中飞鹊 对我的建议, 程序(用C#写的)中一共只有三个线程,一个主线程,两个子线程,不会是线程过多的原因吧, 边检查边画程序流程图是个很好的方法。。 可是我时间有点不多诶,就是应为时间不多,才导致当初设计不是很完善, 以致后来错误频繁,花了很大部分时间来解决错误问题, 但是这个错误非常神奇,很难找出来,很有可能是内存耗尽问题 我没比较程序运行前和运行几个小时之后的内存占有情况,我尝试着找找!
回答
如果一个程序运行几个到几十个小时,光从时间上来讲就肯定有大问题存在。而且可以这么说,那几个小时的运行周期,只不过是貌似运行了几个小时罢了,程序实际的运行时间不会这么长的,一般是前面的数分钟的确是程序在执行,数分钟过后,不管程序执行到了哪一步,资源耗尽了,但操作系统/编译器不是人,它不会看到不对劲之后马上终止掉运行,就像你用手按下(Shift+F5)去结束调试一样,而是按它既定的一套步骤一步一步的查找错误、判断错误、重新分配资源,而这个时间是相当漫长的。唯一的办法就是耐心的查找,或者更好的,用单步调试的办法逐语句、逐过程的调试,找出问题到底出在那个地方。你这种情况,用单步调试最好,很可能走到一个地方走不动了,这里就是问题所在了。试试吧!

推荐阅读
  • 本文探讨了在支付项目开发中使用SS5 Socket Server实现内部网络访问外部网络的技术方案。详细介绍了SS5的安装、配置及性能测试过程,旨在为面临相同需求的技术人员提供参考。 ... [详细]
  • 浪潮AI服务器NF5488A5在MLPerf基准测试中刷新多项纪录
    近日,国际权威AI基准测试平台MLPerf发布了最新的推理测试结果,浪潮AI服务器NF5488A5在此次测试中创造了18项性能纪录,显著提升了数据中心AI推理性能。 ... [详细]
  • FreeBSD作为Berkeley Software Distribution (BSD)的一个关键分支,其发展历程深刻影响了现代操作系统的设计。本文将探讨FreeBSD从早期版本到最新版本的技术进步及其对计算行业的贡献。 ... [详细]
  • 想要使用Linux,以下这些命令不可少的哦!我在工作中经常用到的大多数都是一些文件的查找,和上传下载什么的,没什么技术含量& ... [详细]
  • i5-4670与i5-4670K的最佳主板选择指南
    近期,网络社区中有许多用户询问关于i5-4670K应搭配哪种主板的问题。鉴于很多用户对此并不熟悉,甚至给出了如B75或H77这样的错误建议,本文将详细解析i5-4670K及i5-4670的最佳主板配置。 ... [详细]
  • 本文详细解释了i386和X86_64这两种处理器架构的意义及其区别,涵盖了从早期的8086处理器到现代多核技术的发展历程,探讨了这些架构如何影响操作系统的选择及软件的兼容性。 ... [详细]
  • 本文详细探讨了虚拟化的基本概念,包括服务器虚拟化、网络虚拟化及其在云计算环境中的应用。特别强调了SDN技术在网络虚拟化和云计算中的关键作用,以及网络虚拟化技术如何提升资源利用效率和管理灵活性。 ... [详细]
  • 本文详细介绍如何通过Anaconda 3.5.01快速安装TensorFlow,包括环境配置和具体步骤。 ... [详细]
  • 本文探讨了Java虚拟机(JVM)的功能,解释了为何源代码需先编译为字节码(.class),并详细介绍了Java开发工具包(JDK)和Java运行时环境(JRE)的区别及其各自的角色。此外,还将介绍如何将Java文件打包成可执行的.jar文件,并解析程序如何从硬盘加载到内存以供CPU执行。 ... [详细]
  • 解决MySQL错误2002:无法建立数据库连接
    本文详细描述了在Digital Ocean服务器上托管的多个WordPress站点突然出现数据库连接错误的情况,并提供了有效的解决方案。 ... [详细]
  • 一、搭建项目创建Maven项目导入rabbitmq包com.rabbitmqamqp-clien ... [详细]
  • 新萝卜Ghost Xp Sp3 装机版
    新萝卜GhostXpSp3装机版XLB_201305ZJB.iso大小:901457920字节MD5:EBE33B7DB119CF2D0B1D79F8F0FC22BFSHA1:0 ... [详细]
  • Python 第三天学习笔记
    本文详细介绍了 Python 编程的第三天学习内容,包括字符编码、文件处理以及函数的基本概念和使用方法。 ... [详细]
  • Linux下调整网卡速率及检查网络带宽占用的方法
    本文介绍了在性能测试过程中,如何通过Linux命令行工具来检查和调整网卡速率,以及分析网络带宽占用情况,以帮助排除网络瓶颈的可能性。 ... [详细]
  • 探讨电脑常见故障及其解决方案
    本文深入分析了电脑无法正常启动、开机报警等常见故障的原因,并提供了相应的解决策略,帮助用户快速定位并解决问题。 ... [详细]
author-avatar
悦md悦小坏蛋
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有