文章分类 -  dotnet通关秘籍

1 2 3 4 5 6 下一页
dotnet硬核知识
C#.NET Pipelines 深入解析:高性能 IO 管道与零拷贝协议处理实战
摘要:简介 如果说: Span<T> 解决的是“如何高效操作一段连续内存”; Memory<T> 解决的是“如何跨异步边界持有连续内存”; ReadOnlySequence<T> 解决的是“如何处理多段逻辑连续内存”; 那么 System.IO.Pipelines 解决的就是更完整的一层问题: 如何把“数 阅读全文
posted @ 2026-03-17 08:19 我是唐青枫 阅读(1) 评论(0) 推荐(0)
C#.NET ReadOnlySequence 深入解析:多段内存遍历与零拷贝协议解析
摘要:简介 如果说 Span<T> 解决的是“如何高效处理一段连续内存”,Memory<T> 解决的是“如何跨异步边界持有一段连续内存”,那么 ReadOnlySequence<T> 解决的就是另一个更真实的问题: 当数据根本不是一整块连续内存,而是分散在多段内存里时,怎么仍然零拷贝地把它当成一条完整数据 阅读全文
posted @ 2026-03-16 08:06 我是唐青枫 阅读(2) 评论(0) 推荐(0)
C#.NET Memory 深入解析:跨异步边界的内存视图与高性能实战
摘要:简介 如果说 Span<T> 是 .NET 高性能内存体系里最亮眼的类型,那么 Memory<T> 就是它最重要的搭档。 很多人学完 Span<T> 后,马上会遇到几个现实问题: 为什么 Span<T> 不能做类字段? 为什么 Span<T> 不能跨 await? 为什么异步 IO 场景里,很多 A 阅读全文
posted @ 2026-03-14 09:22 我是唐青枫 阅读(3) 评论(0) 推荐(0)
C#.NET Span 深入解析:零拷贝内存切片与高性能实战
摘要:简介 在 .NET 里,只要你开始关注性能,尤其是这些场景: 字符串解析; 网络协议处理; 文件读取和缓冲区操作; JSON、CSV、日志、报文解析; 高频数组切片; 你几乎一定会遇到 Span<T>。 它之所以重要,不是因为它“新”,而是因为它解决的是一个非常实际的问题: 如何在不额外分配内存、不 阅读全文
posted @ 2026-03-13 07:31 我是唐青枫 阅读(4) 评论(0) 推荐(0)
C#.NET 源生成器 深入解析:编译时代码生成与增量生成器实战
摘要:简介 在 .NET 项目里,很多“重复但又不能随便写错”的代码,本质上都不值得手写。 例如: DTO 映射代码; INotifyPropertyChanged 模板代码; 接口注册代码; 序列化上下文; 特性驱动的样板方法; 各种“按规则扫描代码再生成辅助类”的场景。 过去这类问题通常有 3 种解法 阅读全文
posted @ 2026-03-12 07:55 我是唐青枫 阅读(3) 评论(0) 推荐(0)
C#.NET Expression Tree 深入解析:表达式树、动态查询与运行时代码生成
摘要:简介 在 C#.NET 里,很多人第一次接触表达式树,通常是因为 LINQ、Entity Framework,或者某段代码里突然冒出了这样一行: Expression<Func<User, bool>> predicate = x => x.Age >= 18; 表面上看,它和普通 Lambda 很 阅读全文
posted @ 2026-03-11 07:13 我是唐青枫 阅读(0) 评论(0) 推荐(0)
C#.NET SignalR 深入解析:实时通信、Hub 与连接管理实战
摘要:简介 在传统 HTTP 请求模型里,客户端发请求,服务端给响应,请求结束后连接关系基本也就结束了。 这套模型处理普通 CRUD 没问题,但一到下面这些场景就开始别扭: 聊天室、站内通知、在线客服; 实时仪表盘、订单状态刷新、监控大屏; 协同编辑、在线白板、多人房间; 后端事件触发后,需要主动推送给客 阅读全文
posted @ 2026-03-10 07:17 我是唐青枫 阅读(2) 评论(0) 推荐(0)
C#.NET Channel 深入解析:高性能异步生产者消费者模型实战
摘要:简介 在 C#.NET 里,只要碰到“生产者不断产出数据,消费者持续处理数据”这类场景,最终都会绕到一个核心问题: 如何解耦生产速度和消费速度; 如何在高并发下保证吞吐量; 如何在异步场景下避免把线程白白阻塞住; 如何在队列堆积时做背压、限流或丢弃。 System.Threading.Channel 阅读全文
posted @ 2026-03-09 07:20 我是唐青枫 阅读(4) 评论(0) 推荐(0)
BlockingCollection<T> 内部机制与最佳实践
摘要:简介 BlockingCollection<T> 是 .NET 中非常重要且实用的线程安全、阻塞式的生产者-消费者集合类,位于 System.Collections.Concurrent 命名空间。 BlockingCollection 不是队列, 而是一个“带阻塞语义的并发管道(Blocking 阅读全文
posted @ 2026-01-20 07:18 我是唐青枫 阅读(20) 评论(0) 推荐(0)
C#.NET ConcurrentDictionary<TKey, TValue> 深度解析:原理与实践
摘要:简介 ConcurrentDictionary<TKey, TValue> 是 System.Collections.Concurrent 命名空间下的线程安全的键值对集合,专为高并发读写场景设计 —— 相比传统 Dictionary<TKey, TValue> +lock 的方案,它采用细粒度锁( 阅读全文
posted @ 2026-01-13 07:20 我是唐青枫 阅读(73) 评论(0) 推荐(0)
C#.NET ConcurrentBag<T> 设计原理与使用场景
摘要:简介 ConcurrentBag<T> 是 System.Collections.Concurrent 命名空间下的线程安全的无序集合,专为 “多线程同时添加 / 移除元素” 设计,核心特点是基于线程局部存储(TLS)优化,在 “同一线程频繁添加和移除元素” 的场景下性能最优,是 .NET 中处理无 阅读全文
posted @ 2026-01-12 07:57 我是唐青枫 阅读(6) 评论(0) 推荐(0)
深入理解 Volatile:C#.NET 内存可见性与有序性
摘要:简介 Volatile 是 C# 中处理内存可见性和指令重排序的关键机制,它提供了对内存访问的精细控制。在并发编程中,volatile 关键字和 Volatile 类都是解决共享变量可见性问题的重要工具。 为什么需要volatile? CPU 缓存导致的 “内存可见性” 问题 现代 CPU 为提升性 阅读全文
posted @ 2026-01-07 07:17 我是唐青枫 阅读(35) 评论(0) 推荐(0)
你真的理解 Interlocked.Exchange 吗?C#.NET 原子操作详解
摘要:什么是 Interlocked.Exchange? Interlocked.Exchange 是 System.Threading.Interlocked 类中的静态方法,用于原子地替换(交换)一个变量的值,并返回该变量的旧值。整个读-改-写过程是不可分割的,在多线程环境中保证线程安全。 核心作用: 阅读全文
posted @ 2026-01-06 06:59 我是唐青枫 阅读(59) 评论(0) 推荐(0)
深入理解 System.Lazy<T>:C#.NET 延迟初始化与线程安全
摘要:什么是 Lazy<T>? System.Lazy<T> 是 .NET Framework 4.0 引入(位于 System 命名空间)的泛型类,用于实现线程安全的延迟初始化(Lazy Initialization)。它确保一个昂贵的对象或资源只在第一次真正需要时才被创建,并且在多线程环境下保证初始化 阅读全文
posted @ 2026-01-05 07:37 我是唐青枫 阅读(20) 评论(0) 推荐(0)
深入理解 Interlocked.CompareExchange:C#.NET 原子操作核心原理
摘要:什么是 Interlocked.CompareExchange? Interlocked.CompareExchange 是 .NET 中 System.Threading.Interlocked 类的最核心原子操作方法。它执行比较并交换(Compare-And-Swap,简称 CAS) 操作:在多 阅读全文
posted @ 2026-01-04 06:58 我是唐青枫 阅读(63) 评论(0) 推荐(0)
深入理解 Parallel.ForEachAsync:C#.NET 并行调度模型揭秘
摘要:简介 ┌──────────────┐ │ 数据源枚举器 │ IEnumerable / IAsyncEnumerable └──────┬───────┘ ↓ ┌────────────────────┐ │ 并发调度器(Pump) │ ← 控制最多 N 个任务 └──────┬───────── 阅读全文
posted @ 2026-01-01 07:02 我是唐青枫 阅读(14) 评论(0) 推荐(0)
深入理解 C#.NET Parallel:并行编程的正确打开方式
摘要:简介 Parallel 并行编程是 .NET 中利用多核 CPU 进行并发执行的编程模型,主要通过 System.Threading.Tasks 命名空间中的 Parallel 类实现。它允许将任务分解成多个子任务,在多个线程上同时执行,以加速 CPU 密集型操作(如循环计算、数据处理)。 核心组件 阅读全文
posted @ 2025-12-31 07:19 我是唐青枫 阅读(58) 评论(0) 推荐(0)
深入理解 C#.NET Interlocked.Increment:原子操作的核心
摘要:简介 Interlocked.Increment 是 .NET 中一个重要的线程安全操作方法,用于以原子方式递增变量的值。它位于 System.Threading 命名空间中,提供了一种轻量级的线程同步机制。 这些方法包括: 方法 作用 Increment(ref int location) 原子 阅读全文
posted @ 2025-12-30 07:59 我是唐青枫 阅读(32) 评论(0) 推荐(0)
深入理解 C#.NET IEnumerable<T>:一切集合的起点
摘要:简介 IEnumerable<T> 是 .NET 中最核心的接口之一,位于 System.Collections.Generic 命名空间中。它代表一个可枚举的集合,支持在集合上进行迭代操作。 IEnumerable<T> 是什么? public interface IEnumerable<out 阅读全文
posted @ 2025-12-29 07:06 我是唐青枫 阅读(221) 评论(0) 推荐(0)
C#.NET 索引器完全解析:语法、场景与最佳实践
摘要:简介 索引器(Indexer)是 C# 中的一种特殊属性,它允许类或结构体像数组一样使用索引语法(例如 obj[0])来访问或修改对象内部的成员。简单来说,它将对象的实例视为“可索引的集合”,提供类似于数组的访问方式。 核心特性: 类似于属性(Property),但带有参数(通常是索引值,如整数或字 阅读全文
posted @ 2025-12-25 07:06 我是唐青枫 阅读(16) 评论(0) 推荐(0)

1 2 3 4 5 6 下一页