http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 27187|回复: 11

[其他] c#调试程序 不报错自动关闭

[复制链接]
发表于 2014-6-26 12:30:30 | 显示全部楼层 |阅读模式
1金钱
c#写的应用程序
调试中全都正常,如果遇到错误代码,也会正常报错,一切正常

可是,程序不定时(有时候1小时,有时候4小时)会自动关闭,直接从调试状态中退出,捕获不到任何错误

//处理UI线程异常
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
//处理非UI线程异常
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);


全写了,就是捕获不到,也没有任何invoke参数的错误,调用dll错误

求助啊



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2014-6-26 12:35:46 | 显示全部楼层
自动退出说明是有未捕获到的异常 ,所以你可以试试看所有代码放异常里确定下是那里的问题。
回复

使用道具 举报

 楼主| 发表于 2014-6-26 13:12:12 | 显示全部楼层
站长苏飞 发表于 2014-6-26 12:35
自动退出说明是有未捕获到的异常 ,所以你可以试试看所有代码放异常里确定下是那里的问题。

怎么把所有代码放在异常里呀.....
回复

使用道具 举报

 楼主| 发表于 2014-6-26 13:13:51 | 显示全部楼层
站长苏飞 发表于 2014-6-26 12:35
自动退出说明是有未捕获到的异常 ,所以你可以试试看所有代码放异常里确定下是那里的问题。

所有过程
里面从开始到结束,都用 try 包起来吗?
回复

使用道具 举报

发表于 2014-6-26 14:37:20 | 显示全部楼层
梦与现实 发表于 2014-6-26 13:13
所有过程
里面从开始到结束,都用 try 包起来吗?

是的,在最外层使用Try就行了,
回复

使用道具 举报

 楼主| 发表于 2014-6-27 09:34:04 | 显示全部楼层
站长苏飞 发表于 2014-6-26 14:37
是的,在最外层使用Try就行了,

全括起来了
所有过程都用
try
{
}
catch (Exception ex)
{
bl.Err(ex);
return;
}
来导出捕获的异常,啥都没有就直接关闭,要崩溃了
回复

使用道具 举报

发表于 2014-6-27 09:42:09 | 显示全部楼层
不用怀疑,还是有没有捕获到了,线程里是要单击捕获的,你是不是使用多线程了
回复

使用道具 举报

 楼主| 发表于 2014-6-27 10:06:44 | 显示全部楼层
站长苏飞 发表于 2014-6-27 09:42
不用怀疑,还是有没有捕获到了,线程里是要单击捕获的,你是不是使用多线程了

是的,多线程,可是线程里有的错误,是可以捕获到的啊

怎么才能捕获这种不定时间,不知道啥时候才会出现的异常
回复

使用道具 举报

发表于 2014-6-27 10:16:47 | 显示全部楼层
还是有异常没有处理,不然怎么会结束呢。你再看看
回复

使用道具 举报

 楼主| 发表于 2014-6-28 20:56:52 | 显示全部楼层
站长苏飞 发表于 2014-6-27 10:16
还是有异常没有处理,不然怎么会结束呢。你再看看

经过排除,我感觉是这个原因导致关闭

我一个窗口,设置了5个timer控件

1个软件同时打开4个窗口,程序就会自动关闭的很快

每个timer的控件,都会1秒发送一个线程

private void timer1_Tick(object sender, EventArgs e)
        {
            //new Thread(new ThreadStart(mytime1)) { IsBackground = true }.Start();
        }

private void mytime1()
        {
                t1--;
                if (t1 < 0) { t1 = 60; }
        }

我把每个线程就写了这么点东西

这样就会不知原因的自动关闭调试程序......这是怎么回事啊,难道.net程序看我开的线程太多,给自动杀掉进程了?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-24 12:37

© 2014-2021

快速回复 返回顶部 返回列表