SF
唐青枫
唐青枫
注册登录
关注博客
注册登录
主页
关于
RSS
你真的理解 Interlocked.Exchange 吗?C#.NET 原子操作详解
唐青枫
唐青枫
今天 07:04
阅读 5 分钟
56
Interlocked.Exchange 是 System.Threading.Interlocked 类中的静态方法,用于原子地替换(交换)一个变量的值,并返回该变量的旧值。整个读-改-写过程是不可分割的,在多线程环境中保证线程安全。
封面图
深入理解 System.Lazy<T>:C#.NET 延迟初始化与线程安全
唐青枫
唐青枫
1 月 5 日
阅读 8 分钟
158
System.Lazy<T> 是 .NET Framework 4.0 引入(位于 System 命名空间)的泛型类,用于实现线程安全的延迟初始化(Lazy Initialization)。它确保一个昂贵的对象或资源只在第一次真正需要时才被创建,并且在多线程环境下保证初始化只发生一次。
封面图
深入理解 Interlocked.CompareExchange:C#.NET 原子操作核心原理
唐青枫
唐青枫
1 月 4 日
阅读 8 分钟
259
Interlocked.CompareExchange 是 .NET 中 System.Threading.Interlocked 类的最核心原子操作方法。它执行比较并交换(Compare-And-Swap,简称 CAS) 操作:在多线程环境下,安全地将变量的值与预期值比较,如果相等则替换为新值,整个过程原子不可中断。
封面图
深入理解 Parallel.ForEachAsync:C#.NET 并行调度模型揭秘
唐青枫
唐青枫
1 月 1 日
阅读 3 分钟
162
简介 {代码...} 不是一次性启动所有任务是一个 "边消费、边执行、边补位" 的模型核心设计目标在异步场景下,维持固定并发度,持续消耗数据源,直到完成痛点ForEachAsync 的解法Task.WhenAll 不限流MaxDegreeOfParallelismSemaphoreSlim 模板繁琐内建async foreach 调度复杂自动处理调度模型核心:滑动窗口(Sliding Wind...
封面图
深入理解 C#.NET Parallel:并行编程的正确打开方式
唐青枫
唐青枫
2025年12月31日
阅读 10 分钟
247
Parallel 并行编程是 .NET 中利用多核 CPU 进行并发执行的编程模型,主要通过 System.Threading.Tasks 命名空间中的 Parallel 类实现。它允许将任务分解成多个子任务,在多个线程上同时执行,以加速 CPU 密集型操作(如循环计算、数据处理)。
封面图
深入理解 C#.NET Interlocked.Increment:原子操作的核心
唐青枫
唐青枫
2025年12月30日
阅读 7 分钟
410
Interlocked.Increment 是 .NET 中一个重要的线程安全操作方法,用于以原子方式递增变量的值。它位于 System.Threading 命名空间中,提供了一种轻量级的线程同步机制。
封面图
深入理解 C#.NET IEnumerable<T>:一切集合的起点
唐青枫
唐青枫
2025年12月29日
阅读 7 分钟
363
IEnumerable<T> 是 .NET 中最核心的接口之一,位于 System.Collections.Generic 命名空间中。它代表一个可枚举的集合,支持在集合上进行迭代操作。
封面图
C#.NET 索引器完全解析:语法、场景与最佳实践
唐青枫
唐青枫
2025年12月25日
阅读 7 分钟
519
索引器(Indexer)是 C# 中的一种特殊属性,它允许类或结构体像数组一样使用索引语法(例如 obj[0])来访问或修改对象内部的成员。简单来说,它将对象的实例视为"可索引的集合",提供类似于数组的访问方式。
封面图
C#.NET AsyncLock 完全解析:async/await 下的并发控制方案
唐青枫
唐青枫
2025年12月24日
阅读 5 分钟
457
AsyncLock 是一种自定义的异步互斥锁(Mutex Lock),专为异步编程场景设计,用于在 async/await 方法中实现线程安全的互斥访问。它弥补了 .NET 中传统 lock 语句(基于 Monitor)的不足,因为 lock 是同步阻塞的,在异步环境中会阻塞线程池线程,导致性能下降或死锁风险。
封面图
一篇搞定 dotnet ef:EF Core 常用命令与实战指南
唐青枫
唐青枫
2025年12月23日
阅读 3 分钟
522
在执行任何 dotnet ef 命令前,需要在 csproj 中包含 Microsoft.EntityFrameworkCore.Design 包。
封面图
深入理解 C#.NET record:不可变对象与值语义的现代实践
唐青枫
唐青枫
2025年12月22日
阅读 5 分钟
454
record 是 C# 9 引入的新引用类型(Reference Type),专门用于数据导向(Data-Oriented)的不可变对象。特别适合用于表示不可变的数据传输对象(DTO)、值对象和领域模型。
封面图
C#.NET struct 全解析:什么时候该用值类型?
唐青枫
唐青枫
2025年12月18日
阅读 5 分钟
776
struct 是 值类型(Value Type),用于封装一组相关的数据。与类(class)相比,结构体通常更轻量,适用于小型、短生命周期的对象。
封面图
C#.NET ref struct 深度解析:语义、限制与最佳实践
唐青枫
唐青枫
2025年12月17日
阅读 3 分钟
618
简介ref struct 是 C# 7.2 引入的一种特殊结构体类型,它与普通 struct 的最大区别是 严格限制其分配位置:ref struct 只能分配在栈(stack)上,不能分配在堆(heap)上。⚡ 设计初衷提高性能:栈分配比堆分配快,并且无需 GC 回收。提供安全的内存访问:保证生命周期受控,防止内存泄漏和悬空引用。适用于需要直接操作...
封面图
告别频繁 GC:C#.NET PooledList 的设计与使用场景
唐青枫
唐青枫
2025年12月16日
阅读 3 分钟
451
PooledList<T> 是 高性能集合类型,由 Collections.Pooled 提供,用于替代 List<T>,通过 对象池 (ArrayPool<T>) 复用内部数组来减少 GC(垃圾回收)压力。
封面图
深入理解 C#.NET 运算符重载:语法、设计原则与最佳实践
唐青枫
唐青枫
2025年12月15日
阅读 4 分钟
817
运算符重载是 C# 提供的一种特性,允许开发者为 自定义类型(类/结构体) 定义运算符的行为。例如,可以让 Vector 对象支持 + 运算,而不是仅限于基本类型(int、double 等)。
封面图
LINQ 新时代:CountBy、AggregateBy 深度解析(含对比 GroupBy)
唐青枫
唐青枫
2025年12月12日
阅读 7 分钟
546
在 .NET 8 之前,LINQ 没有内置 CountBy 和 AggregateBy 方法,但在 .NET 9(C# 13) 中,LINQ 正式引入了这两个新扩展方法,极大简化了数据分组和聚合的写法。
封面图
C# Params Collections 详解:比 params T[] 更强大的新语法
唐青枫
唐青枫
2025年12月11日
阅读 4 分钟
517
Params Collections 是 C# 12 中引入的新特性,它扩展了传统的 params 关键字功能,使其不仅支持数组,还能支持各种集合类型。这个特性使得方法能够接受可变数量的参数,并且这些参数可以自动转换为指定的集合类型。
封面图
一次弄懂 C# 内联数组(Inline Array):高性能数组的新选择
唐青枫
唐青枫
2025年12月10日
阅读 6 分钟
549
内联数组是 C# 12 和 .NET 8 中引入的一个高级特性,它允许开发者创建固定大小的、在栈上分配或内联在结构体中的数组。这个特性主要用于高性能场景,可以避免堆分配和垃圾回收的开销。
封面图
一次看懂 C# TimeSpan:时间差操作的完整指南
唐青枫
唐青枫
2025年12月09日
阅读 5 分钟
1.6k
TimeSpan 是 .NET 中用于表示时间间隔或持续时间的重要结构体。它提供了丰富的方法和属性来处理时间跨度,从几毫秒到几百万天都可以精确表示。
封面图
C# 列表模式(List Patterns)深度解析:模式匹配再进化!
唐青枫
唐青枫
2025年12月04日
阅读 3 分钟
417
列表模式是一种模式匹配机制,允许检查一个集合(例如数组、List<T>、或任何实现了 IEnumerable<T> 的类型)的元素数量、顺序以及每个元素的内容。
封面图
C# 泛型数学:解锁真正的类型安全数值运算
唐青枫
唐青枫
2025年12月03日
阅读 15 分钟
392
C# 11 和 .NET 7 引入了泛型数学(Generic Math)功能,这是一个革命性的特性,允许开发者编写适用于多种数值类型的通用数学算法。这是通过静态抽象接口成员实现的,解决了长期以来在泛型代码中处理数学运算的难题。
封面图
C# 原始字符串字面量全面解析:多行字符串终于优雅了!
唐青枫
唐青枫
2025年12月02日
阅读 6 分钟
601
C# 11 引入了原始字符串字面量(Raw String Literals),这是一个革命性的特性,极大地简化了包含大量特殊字符(如引号、反斜杠、换行符等)的字符串处理。
封面图
C#.NET Record Struct 完全解析:语法、语义与最佳实践
唐青枫
唐青枫
2025年12月01日
阅读 7 分钟
437
Record Structs 是一种值类型的记录(record),结合了 struct 的值语义和 record 的功能(如自动生成相等性比较、不可变性支持)。它们是 C# 9.0 中引入的引用类型 record(默认 class)的扩展,专为性能敏感场景设计,特别是在需要栈分配或避免 GC 压力的情况下。
封面图
C#.NET 范围与索引(Range、Index)完全解析:语法、用法与最佳实践
唐青枫
唐青枫
2025年11月27日
阅读 6 分钟
396
C# 8.0 引入了范围(Ranges)和索引(Indices)功能,提供了更简洁、更直观的语法来处理集合中的元素和子集。这些功能大大简化了数组、字符串、列表等数据结构的操作。
封面图
告别 if-else:C#.NET 模式匹配让代码更优雅的正确方式
唐青枫
唐青枫
2025年11月26日
阅读 5 分钟
536
模式匹配是 C# 7.0 开始引入的革命性特性,它提供了更简洁、更强大的方式来检查和提取数据中的信息。随着每个版本的更新,模式匹配功能不断强化,成为现代 C# 开发的核心特性。
封面图
一文理解 C#.NET Tuples:从基础到高级应用
唐青枫
唐青枫
2025年11月25日
阅读 5 分钟
478
元组是 C# 中用于存储一组固定数量、可能不同类型的值的数据结构。它是值类型(ValueTuple),在内存中分配于栈上(除非作为对象引用使用),因此性能较高。元组的主要用途是:
封面图
C#.NET 集合表达式详解:新时代的集合初始化方式
唐青枫
唐青枫
2025年11月24日
阅读 3 分钟
426
集合表达式(Collection Expressions)是 C# 12.0(随 .NET 8.0 发布于 2023 年)引入的一项新特性,用于以简洁、声明式的方式创建和初始化集合(如数组、列表、字典等)。集合表达式通过 [...] 语法提供了一种更直观的方式来定义集合,减少样板代码并提高可读性。
封面图
一文搞懂 C#.NET DateTimeOffset:时间戳、时区与偏移量全掌握
唐青枫
唐青枫
2025年11月20日
阅读 4 分钟
507
DateTimeOffset 是 System 命名空间中的结构体,用于表示特定时间点及其相对于协调世界时(UTC)的偏移量。相比 DateTime,它更适合处理跨时区场景,确保时间数据在全球化应用中的一致性和精确性。
封面图
C#.NET DateTime 最强入门到进阶:格式化、转换、UTC、时区全覆盖
唐青枫
唐青枫
2025年11月19日
阅读 6 分钟
605
定义:System.DateTime 是一个值类型(struct),表示自公元 0001 年 1 月 1 日午夜 00:00:00(DateTime.MinValue)起经过的"刻度"(ticks,1 tick = 100 纳秒)数。
封面图
.NET Web 应用 Linux 部署全指南:从环境搭建到生产上线
唐青枫
唐青枫
2025年11月18日
阅读 6 分钟
614
简介背景和优势ASP.NET Core 自 .NET Core 1.0(2016 年)起支持跨平台,Linux 部署具有以下优势:高性能:Linux 服务器(如 Ubuntu)资源占用低,适合高并发。成本效益:开源操作系统,降低服务器成本。生态支持:支持 MySQL、Docker、Nginx 等,适配微服务和云原生。社区活跃:Linux 是云部署(如 AWS、Azure)的首选...
封面图
1
(current)
2
3
4
5
...
More
下一页
1
(current)
下一页
AltStyle
によって変換されたページ
(->オリジナル)
/
アドレス:
モード:
デフォルト
音声ブラウザ
ルビ付き
配色反転
文字拡大
モバイル