写点什么

C#和 Visual Basic 中的闭包与对象生存时期

  • 2007-06-23
  • 本文字数:592 字

    阅读完需:约 2 分钟

C# 2 和即将发布的 VB 9 都允许开发者在匿名方法中引用局部变量。若某匿名方法中引用了某个变量,则该局部变量将被提升为实例变量,并储存于一个叫做闭包(closure)的对象中。提升之后,即使创建该变量的方法执行完毕退出,该变量仍不会消亡。

当指向该匿名函数的所有引用都消失后,该闭包变量即可正常地被垃圾回收器回收。注意到前一句中的“匿名函数”是复数形式(原文为 anonymous functions——译者注)——因为同一个作用域中所有的匿名函数都共享了一个闭包。 Eric Lippert 说这个问题并没有受到足够的关注:

不过,对于同一个作用域中所有的匿名函数都共享了一个闭包的做法,我却没有看到任何人提到过这样会存在问题。虽然这样的设计在语义和概念上都比较容易理解(也比较容易实现),但在垃圾收集方面,这样的做法却有可能导致潜在的问题。

Eric Lippert 在 Blog 中还给出了例子:程序中创建了两个匿名函数,存活时间较短的函数很快即可执行完毕,而存活时间较长的函数则需要一段时间。

假设存活时间较短的委托持有着较为重要稀缺的资源。但是因为作用域中只有一个闭包,所以存活时间较短和较长的两个委托都持有着这同一个闭包。因此只有在两个委托都消亡后,该闭包才能够被垃圾回收。这样,即使那个存活时间较长的委托中并没有使用到该稀缺资源,该资源也只能在存活时间较长的委托结束后才能被释放!

查看英文原文: Closures and Object Lifetime in C# and Visual Basic

2007-06-23 02:131366
用户头像

发布了 37 篇内容, 共 10.2 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

百度Comate SaaS版本正式发布,助力开发者加速研发过程

飞桨PaddlePaddle

智能代码助手 百度Comate SaaS

「智造」第1期:锻造行业智能制造规划

用友BIP

智能制造

智慧云-实现企业APP梦想,10倍轻松便捷

知者如C

IPSec VPN原理介绍 | 京东物流技术团队

京东科技开发者

vpn IPsec 企业号10月PK榜

第8期 | GPTSecurity周报

云起无垠

数据飞轮拆解车企数据驱动三板斧:数据分析、市场画像、A/B实验

字节跳动数据平台

大数据 数字化转型 云服务 数据平台 火山引擎

10月24日程序员节

小齐写代码

音画双绝,坚果O2超短焦系列引领超短焦投影进入三色激光时代

极客天地

强大视频工具:VideoProc Converter 4K激活中文最新版

胖墩儿不胖y

Mac软件推荐 视频处理软件 视频工具 视频转换器

第7期 | GPTSecurity周报

云起无垠

ARBT阿尔比特项目代币合约质押分红挖矿系统开发(源码搭建)

l8l259l3365

东莞理工网安学院举办“火焰杯”软件测试高校就业选拔赛颁奖典礼

测试人

软件测试

数仓实时场景下表行数估算不准确引起的的性能瓶颈问题案例

华为云开发者联盟

数据库 后端 华为云 数仓 华为云开发者联盟

Arbitrum链阿尔比特ARBT共识铸币模式系统开發(源码搭建)

l8l259l3365

Android Kotlin 协程初探 | 京东物流技术团队

京东科技开发者

kotlin andiod 企业号10月PK榜

云安全中的生成式AI:雷声大雨点小?!

树上有只程序猿

云安全 生成式人工智能

数字化建设之路始于选型,企业该如何避免选型“坑”?

优秀

数字化转型 数字化建设

揭秘产品经理提升效率的秘密武器:在线白板工具你绝对不能错过!

彭宏豪95

产品 产品经理 科技 在线白板 办公软件

KubeEdge v1.15.0发布!新增5大特性

华为云开发者联盟

云计算 云原生 后端 华为云 华为云开发者联盟

前端CodeReivew实践 | 京东云技术团队

京东科技开发者

前端 敏捷开发 Code Review 代码评审 企业号10月PK榜

需要获取产品License

矩视智能

深度学习 机器视觉

React技术栈支援Vue项目,你需要提前了解的 | 京东云技术团队

京东科技开发者

Vue 前端 React 企业号10月PK榜

如何从单体架构迁移到微服务架构:挑战和最佳实践

互联网工科生

微服务 单体

3D模型如何添加表面贴图?

3D建模设计

材质 纹理 贴图

C#和Visual Basic中的闭包与对象生存时期_.NET_Jonathan Allen_InfoQ精选文章