随笔分类 - C#
摘要:🚫 为什么「定时器」不应该是线程安全的? —— 从 PriorityQueue 线程安全争论,走向系统级设计 一、问题的起点:一个“看起来很合理”的疑问 在实现定时器(Timer)时,我们常常会写出类似代码: private PriorityQueue<TickTask, long> taskQu
阅读全文
摘要:✅ CLR via C# 第八章总结:方法(Methods) 📌 1. 方法定义基础 方法是类行为的表现,用于封装逻辑。 语法结构: [访问修饰符] [static] [返回类型] 方法名([参数列表]) { // 方法体 } 📌 2. 参数传递方式 ✅ 值传递(默认): 方法获得的是变量的副本
阅读全文
摘要:异常处理是现代编程语言中不可或缺的机制,.NET平台通过try-catch-finally结构和强大的异常类型系统,为开发者提供了高效、类型安全的错误控制能力。在《CLR via C#》第20章中,Jeffrey Richter 以系统性的方式剖析了异常与程序状态之间的本质联系。本文将围绕该章节的精
阅读全文
摘要:📦 第28章:I/O 绑定的异步操作(I/O-Bound Async) 🧭 目录(你可以先扫一眼) 🌐 Windows I/O 模型与 IOCP 🧵 C# async/await 背后的状态机 🧰 常用 I/O 异步 API(FileStream/Socket/HttpClient) 🛑
阅读全文
摘要:CLR #appdomain #plugin 第22章:CLR寄宿与AppDomain 《CLR Via C#》第22章聚焦CLR寄宿和AppDomain,这是.NET框架中管理托管代码执行与隔离的核心机制 一、核心概念:CLR寄宿与AppDomain 1. CLR寄宿 CLR寄宿是指将.NET运行
阅读全文
摘要:🔐 第29章:线程同步构造的兵器谱(实战版) 🎯 导言 在实际开发中,线程就像一群工人,大家都要用工具、机器、库房。如果没有秩序——工人们可能会: 抢同一台机器(数据竞争) 一直等不到轮到自己(死锁) 结果出来错误(数据不一致) 同步构造就是工地的规章制度+工具,让工人们有序工作。 🧩 一、用
阅读全文
摘要:📘 第26章:线程与并发 多线程和并发编程在现代计算机应用中占有至关重要的位置。随着多核处理器的普及,我们的应用程序不仅要支持并发执行,还要高效地管理多线程任务。《CLR via C#》第26章深入探讨了如何在 C# 中使用线程、线程池、任务(Task)以及并行编程库(TPL)来实现高效的并发处理
阅读全文
摘要:📘 第27章:计算密集型异步操作 随着计算密集型操作对性能的要求越来越高,多线程编程和异步操作已成为现代应用程序的标准。特别是在计算密集型任务中,如何高效利用 CPU 资源并进行合理的线程调度和任务管理,成为了开发者们面临的重要挑战。《CLR via C#》的第27章聚焦于计算密集型异步操作,提供
阅读全文
摘要:CLR #反射 #reflect 程序集加载与反射(Assembly Loading and Reflection) 反射(Reflection)是.NET框架中一个强大的功能,允许程序在运行时动态地检查和操作类型、方法、属性等元数据。 1. 程序集加载(Assembly Loading) 在.NE
阅读全文
摘要:第24章:运行时序列化(Runtime Serialization) 在 .NET 世界中,“序列化”是一种常见且强大的机制,它允许你将对象的状态转化为可传输或可存储的格式,再在需要时恢复为原对象。 ✳️ 序列化的基本概念 序列化(Serialization):将对象的字段状态转换为一组字节,以便存
阅读全文
摘要:CLR #WinRT C# 与 WinRT 组件互操作 在 Windows 平台开发中,WinRT(Windows Runtime)是一种现代组件模型,它统一了 C++、C#、VB.NET、JavaScript 等语言的互操作方式。而作为 .NET 开发者,我们需要知道如何 优雅地与 WinRT A
阅读全文
摘要:CLR #cg 托管堆与垃圾回收(ManagedHeap&GarbageCollection) 内存管理是确保应用程序性能和稳定性的关键。CLR(公共语言运行时)通过其强大的垃圾回收(Garbage Collection, GC)机制,自动管理内存分配和释放,极大地简化了开发者的工作。 1. 什么是
阅读全文
摘要:CLR #参数 ✅ 第九章:参数 📌 1. 可选参数(Optional Parameters) 可以为参数指定默认值,调用时可以省略这些参数。 void Greet(string name = "Guest") { Console.WriteLine($"Hello, {name}"); } Gr
阅读全文
摘要:CLR #类型 #成员 1. 类型的基本成员 在 C# 中,一个类型(class 或 struct)可以定义以下成员: 常量(Constant) - 只读,编译期确定 字段(Field) - 存储数据,可以是 static 或 instance 构造函数(Constructor) - 初始化实例或类
阅读全文
摘要:CLR 第七章:常量与字段(Constants and Fields 1. 常量(Constants) 特点 编译时确定:值在编译期确定,不能修改。 隐式 static:常量自动是 static,无需显式声明 static。 存储方式:值被直接嵌入到使用它的代码中,而不是在运行时读取。 示例 pub
阅读全文
摘要:⚡ 第30章:混合线程同步构造 —— 快与稳的平衡术 🎯 导言 把线程同步看成一场“守城战”: 短刀兵(用户模式):快,适合近战,解决瞬间冲突。 重甲兵(内核模式):稳,能长期对抗,但调动慢。 混合兵(Hybrid):聪明的将军,先短刀应付,若打不下来再调重兵。 👉 这就是“混合同步构造”:快的
阅读全文

浙公网安备 33010602011771号