加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#实时尝试捕获

发布时间:2020-12-15 08:01:27 所属栏目:百科 来源:网络整理
导读:我想要一个真正在C#中进行实时编程或者真正了解语言内部的人的回复. 我知道异常不应该用于处理正常处理,而只是用于检测错误条件.有关该主题的讨论很多. 我想知道是否有任何运行时间减慢,只需要一个try / catch块(除非程序必须以任何方式结束,否则永远不会捕
我想要一个真正在C#中进行实时编程或者真正了解语言内部的人的回复.

我知道异常不应该用于处理正常处理,而只是用于检测错误条件.有关该主题的讨论很多.

我想知道是否有任何运行时间减慢,只需要一个try / catch块(除非程序必须以任何方式结束,否则永远不会捕获异常). try / catch块位于必须重复调用的函数内.我怀疑只有最低成本.

是否可以根据CPU周期或其他任务(与浮点乘法相同的成本)或其他方式来量化成本?

我们在Windows XP下使用Microsoft C#.Net 3.5.

解决方法

.NET异常具有非常非常低的开销成本,除非它们被抛出.使用try / catch块对性能影响非常小.我发现几乎没有任何影响,即使在非常快速,紧密的循环中,也有异常处理.

但是,.NET中的异常在被抛出时非常昂贵.如果抛出它们,它们往往会对性能产生很大影响,而不是其他语言.这是由于创建异常时收集的完整堆栈信息等.

这是与其他语言相反的行为,例如python,其中异常处理的成本较高,但抛出实际上是相当高效的.

但是,如果您担心,我会建议您描述您的日常工作,并自行测试.经过相当多的性能分析后,这是我的经验.在您自己的代码库中没有替代测量.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读