首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

dotnet异常抛的很慢,关闭程序出现异常!正常的等异常抛出后关闭一切正常!

2014-01-28 
dotnet异常抛的很慢,我们知道dotnet运行的很慢,我最近写了一个连接数据库的程序,让它连接一个错误的数据库,

dotnet异常抛的很慢

我们知道dotnet运行的很慢,我最近写了一个连接数据库的程序,让它连接一个错误的数据库,当然是连不上啦,然后抛出exception异常,这很正常,但是它抛出异常的时间很长,在此时间段内我想关闭应用程序,也就是点击系统菜单的关闭按钮,应用程序被中断了,也就是有错误了,发现段到我些的exception异常那里。然后我正常的退出,也就是等待应用程序抛出异常后,然后点击系统菜单的关闭按钮,一切正常。如何避免这种情况呢?这应该是dotnet的一个不好的地方。
try
{
cn.Open();
}
catch(Exception ex)
{
MessageBox.Show(this, "数据库连接错误!" + ex.Message, " 失败:", MessageBoxButtons.OK , MessageBoxIcon.Error);
}
finally
{
cn.Close();
}

------解决方法--------------------------------------------------------
关键是ConnectionString中的Connection Timeout参数问题。默认是30秒。
要有一个好的UI,多线程是必须的。
 
------解决方法--------------------------------------------------------
时间长的原因并非抛出异常慢,而是连接的时间慢。

因此修改Connection Timeout的值即可。
------解决方法--------------------------------------------------------
确实是.net抛出异常的时候特别慢,我以前有试过,不过只有第一次慢,以后就快了。
我试的时候是这样的:
try
{
int a=int.Parse("abc");
}
catch (System.Exception)
{
//....
}
第二次执行的时候就很快了。
------解决方法--------------------------------------------------------
你说的'它抛出异常的时间很长'真是误导人啊。

为什么连接时需要 TimeOut 参数你要通过 msdn 之类搞清楚。
------解决方法--------------------------------------------------------
关键是ConnectionString中的Connection Timeout参数问题。默认是30秒。
 
------解决方法--------------------------------------------------------
我也认为应该是ConnectionString中的Connection Timeout参数问题
------解决方法--------------------------------------------------------
用一个多线程去启动数据库,不管你做任何操作都不会影响主线程。 有一种情况就是连接字符串的主机根本不存在,这个时候就会很慢很慢。
------解决方法--------------------------------------------------------
个人认为应该是ConnectionString中Timeout属性问题
------解决方法--------------------------------------------------------