DateOnly & TimeOnly
.NET 6 引入了两种期待已久的类型 - DateOnly 和 TimeOnly, 它们分别代表DateTime的日期和时间部分。
Parallel.ForEachAsync
它可以控制多个异步任务的并行度。
ArgumentNullException.ThrowIfNull()
ArgumentNullException 的小改进, 在抛出异常之前不需要在每个方法中检查 null, 现在只需要写一行, 和 response.EnsureSuccessStatusCode(); 类似。
PriorityQueue
.NET 6 新增的数据结构, PriorityQueue, 队列每个元素都有一个关联的优先级,它决定了出队顺序, 编号小的元素优先出列。
RandomAccess
提供基于偏移量的 API,用于以线程安全的方式读取和写入文件。
PeriodicTimer
认识一个完全异步的“PeriodicTimer”, 更适合在异步场景中使用, 它有一个方法 WaitForNextTickAsync。
Metrics API
.NET 6 实现了 OpenTelemetry Metrics API 规范, 内置了指标API, 通过 Meter 类创建下面的指标
• Counter
• Histogram
• ObservableCounter
• ObservableGauge
使用的方法如下:
检查元素是否可为空的反射API
它提供来自反射成员的可空性信息和上下文:
• ParameterInfo 参数
• FieldInfo 字段
• PropertyInfo 属性
• EventInfo 事件
ProcessId & ProcessPath
直接通过 Environment 获取进程ID和路径。
Configuration 新增 GetRequiredSection()
和 DI 的 GetRequiredService() 是一样的, 如果缺失, 则会抛出异常。
CSPNG 密码安全伪随机数生成器
您可以从密码安全伪随机数生成器 (CSPNG) 轻松生成随机值序列。
它对于以下场景中很有用:
• 密钥生成
• 随机数
• 某些签名方案中的盐
Native Memory API
.NET 6 引入了一个新的 API 来分配本机内存, NativeMemory 有分配和释放内存的方法。
Power of 2
.NET 6 引入了用于处理 2 的幂的新方法。
• 'IsPow2' 判断指定值是否为 2 的幂。
• 'RoundUpToPowerOf2' 将指定值四舍五入到 2 的幂。
WaitAsync on Task
您可以更轻松地等待异步任务执行, 如果超时会抛出 “TimeoutException”
新的数学API
新方法:
• SinCos
• ReciprocalEstimate
• ReciprocalSqrtEstimate
新的重载:
• Min, Max, Abs, Sign, Clamp 支持 nint 和 nuint
• DivRem 返回一个元组, 包括商和余数
CollectionsMarshal.GetValueRefOrNullRef
这个是在字典中循环或者修改结可变结构体时用, 可以减少结构的副本复制, 也可以避免字典重复进行哈希计算,这个有点晦涩难懂,有兴趣的可以看看这个
https://github.com/dotnet/runtime/issues/27062
ConfigureHostOptions
IHostBuilder 上的新 ConfigureHostOptions API, 可以更简单的配置应用。
Async Scope
.NET 6 引入了一种新的CreateAsyncScope方法, 当您处理 IAsyncDisposable 的服务时现有的CreateScope方法会引发异常, 使用 CreateAsyncScope 可以完美解决。
加密类简化
• DecryptCbc
• DecryptCfb
• DecryptEcb
• EncryptCbc
• EncryptCfb
• EncryptEcb
(完)
|