快手、孩子王、华为等专家分享大模型在电商运营、母婴消费、翻译等行业场景的实际应用 了解详情
写点什么

.NET 4.5 对 Base Class Library 做出改善

  • 2012-07-04
  • 本文字数:1193 字

    阅读完需:约 4 分钟

Base Class Library 是.NET 开发平台的核心。不管你使用了何种配置或者前端技术,都会在应用程序中找到使用 BCL 的地方。以下是期望在.NET 4.5 中做出改善的地方:

System.IO

对于耗费大量资源的操作,Stream、TextReader 和 TextWriter 类都拥有了新的 async 方法。这里的消耗我们指的是“可能会在一次操作中做大量工作”。而像 TextReader.Peek 之类的方法不会获得 async 版本的方法。背后的原因在于,坦率地说,async 操作并不会节省资源。它们需要分配 Task 对象,可能还需要做上下文切换,处理缓存可能失效的情况,因此总体上不适合用于严格的循环中。 Immo Landwerth 接着说到,

一般的指导原则是: 让你的异步操作尽可能地厚重。例如,如果你想要使用 BinaryReader 从流中读取 1000 个 Int32 的数据,最好运行并等待一个任务同步地读取所有 1000 条数据,而不是分别运行并等待 1000 个任务,每个任务都只读取一条 Int32 数据。

说到 BinaryReader,你现在可以告诉它不要自动关闭它所包装的流。这个特性对 BinaryWriter、StreamReader 和 StreamWriter 同样适用。

Immo 还提到,.NET BCL 现在使用了开源程序库zlib 来实现System.IO.Compression 命名空间。这包括对DeflateStream 性能的修正,以及新的 ZipArchive 类。这并非是 zlib 第一次被微软使用,它还用于 Windows 的 Zip 文件支持和 WPF 中。

System.Collection

我们已经谈到了.NET 4.5 中的只读集合,到现在为止其中并没有显著改变。值得注意的一种被遗漏的特性是IReadOnlySet,它被用于匹配HashSet 和ISet。

抽象类Comparer 使用了一些函数式编程的优势。你不能显式地实现这个类,而是需要调用 Comparer.Create ,在一个比较函数中传递它,然而让它来负责其他处理。

很少有人知道 ArraySegment 结构,它也获得了重大改进,第一次真正实现了让它变得有用的接口,像 IEnumerable 和 IList。然而,它只对裸数组(naked arrays)有效,大多数开发者更喜欢使用更高级别的集合类,像 List。

杂项

AssemblyMetadataAttribute 现在是对集合赋予任意键值对的标准方式。你可能不清楚为什么会使用它,而不是定义自定义的属性,但是如果你想的话就可以那样用。

Console 现在让你知道输入、输出或者错误流是否被重定向。你可能最多是使用它来禁用依赖于设置鼠标位置或者改变屏幕颜色的特性。如果你需要支持额外的字符,还可以把编码变更为 Encoding.Unicode。

WeakReference 提供了替换 WeakReference 的类型安全的方法。为了消除长期存在的竞争条件,WeakReference 不再提供单独的 IsAlive 和 TryGetTarget 方法。取而代之的是,它们被组合到 TryGetTarget 之中。

不幸的是,看起来我们不会有相匹配的 WeakDelegate,如果存在的话,会让实现弱事件更容易。

Regex 现在支持 Timeout 属性。这是很重要的工具,当允许用户注入任意的正则表达式的时候,可以避免拒绝服务攻击。

查看英文原文:.NET 4.5 Improves to the Base Class Library

2012-07-04 03:381795
用户头像

发布了 340 篇内容, 共 128.9 次阅读, 收获喜欢 13 次。

关注

评论

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

腾讯云大数据连续三年蝉联中国大数据市场领导者象限

腾讯云大数据

腾讯云 大数据

(2024最新)Pycharm破解激活2099年激活码教程(含win+mac)

理理

华为大咖说 | 数字时代的财富秘诀:数据资产化全攻略

华为云PaaS服务小智

华为云 资产管理

RTX 4090为什么被称为性能之王?

Finovy Cloud

显卡 显卡选择 #GPU

TDengine 3.3.2.0 发布:新增 UDT 及 Oracle、SQL Server 数据接入

TDengine

ISA-L库调研

天翼云开发者社区

大数据 存储 simd

Beyond Compare 4 文件同步对比工具|适用于PC端和macOS电脑

理理

Microsoft Remote Desktop如何远程Windows电脑?

理理

photoshop2020电脑配置要求 ps 2020中文直装版下载【Mac/win】

理理

Bonree ONE赋能汽车行业 重塑可观测性体验

博睿数据

NTFS磁盘格式读写工具 Tuxera 2022 mac注册版 及破解教程

Rose

NTFS Disk by Omi NTFS for mac(NTFS 磁盘管理器)安装简单 兼容m芯片

理理

DriveDx for mac(mac磁盘健康检测和监控工具)v1.12.1激活版

理理

iPaaS 平台的发展方向

RestCloud

数字化转型 数据集成平台 企业集成 ipaas

手把手教你搭建Docker私有仓库Harbor

不在线第一只蜗牛

Docker 容器 仓库

借助 API 接口深挖 1688 商品详情的奥秘

Noah

如何激活Parallels Desktop 18虚拟机?PD18破解激活教程

理理

VSD Viewer破解版(Visio绘图文件阅读器) v6.16.1激活版

理理

喜讯!云起无垠入选《2024年中国网络安全市场全景图》

云起无垠

工时记录软件:节省时间和金钱的最佳选择

爱吃小舅的鱼

工时管理 工时管理系统

快照技术对比学习

天翼云开发者社区

云计算 快照技术

云原生向量数据库内核揭秘亮了,PostgreSQL 中国技术大会AIGC场景引关注

AI数据云Relyt

AIGC 向量数据库 GenAI AIGC案例 AI数据云

火山引擎数据飞轮升级实验平台架构,解决人效与成本问题

Geek_2d6073

set a light 3d studio 2.5汉化版 Mac 3D模拟布光软件

理理

多项第一!天翼云霸气登顶政务公有云市场

Geek_2d6073

生产环境Nginx配置

源字节1号

小程序 开源 前端 后端

云容灾关键技术点简介

天翼云开发者社区

云计算 云服务 容灾备份

理解 gRPC 与 REST:选择适合您项目的最佳 API 方案

Liam

程序员 gRPC 后端 Rest API

(永久激活)MAMP PRO 本地Web服务器开发环境 【Mac/win】

理理

SD-WAN为什么成为小企业的首选

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN服务商 SDWAN

Ceph PG状态介绍

天翼云开发者社区

分布式 存储 Ceph

.NET 4.5对Base Class Library做出改善_语言 & 开发_Jonathan Allen_InfoQ精选文章