摘要: C# 现代并发编程最佳实践 欢迎阅读 C# 现代并发编程入门!本系列博客文章涵盖了 C# 中的并发编程基础、异步编程模型、并行编程,以及相关的高级主题如数据流、响应式编程、async/await原理解析、上下文管理等。以下是各章节的导航: 目录 第一章:并发编程简介 概述并发编程的演变、C# 中的主 阅读全文
posted @ 2024-12-08 23:41 平元兄 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 使用 Let’s Encrypt 免费申请泛域名 SSL 证书,并实现自动续期 目录使用 Let’s Encrypt 免费申请泛域名 SSL 证书,并实现自动续期🛠️ 环境准备💡 什么是 Let’s Encrypt?🧠 Let’s Encrypt 证书颁发原理1. 域名验证2. 证书生成3. 阅读全文
posted @ 2024-11-10 16:49 平元兄 阅读(3431) 评论(0) 推荐(1) 编辑
摘要: ## 第一章 数据库简介与安装 [1.1 SQL Server简介](https://www.cnblogs.com/michaelshen/p/16502653.html) [1.2 安装SQL Server](https://www.cnblogs.com/michaelshen/p/16503 阅读全文
posted @ 2023-02-06 15:51 平元兄 阅读(625) 评论(1) 推荐(2) 编辑
摘要: 第十四章:深度解密 async/await 与 Task 的底层原理 目录第十四章:深度解密 async/await 与 Task 的底层原理14.1 引言:从回调地狱到 async/await1. 从回调函数到事件驱动:早期的异步编程模型1.1 回调函数(Callback)的局限性1.2 基于事件 阅读全文
posted @ 2024-12-09 16:21 平元兄 阅读(112) 评论(1) 推荐(1) 编辑
摘要: 第十三章:调度 目录第十三章:调度13.1 任务调度器 (TaskScheduler) 基础TaskScheduler 的作用与核心机制默认任务调度器 TaskScheduler.Default使用默认调度器将任务调度到线程池线程上代码示例:Task.Run 的使用代码示例:Task.Factory 阅读全文
posted @ 2024-12-09 16:18 平元兄 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 第十二章:C#多线程同步 目录第十二章:C#多线程同步12.1 简介为什么需要同步?什么时候不需要同步?同步的常见应用同步的重要性12.2 原子操作简介使用场景代码示例使用 Interlocked 类1. 线程安全地递增、递减和累加2. 线程安全地交换值3. 比较并交换值4. 无锁栈的简单实现原子操 阅读全文
posted @ 2024-12-09 16:17 平元兄 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 第十一章:C#异步函数与面向对象编程的融合 目录第十一章:C#异步函数与面向对象编程的融合11.1 异步接口及继承问题解决方案代码示例小结11.2 异步构造方法:工厂模式问题解决方案:异步工厂模式常见问题与反例反例:在构造器中启动异步操作异步工厂模式的优点异步工厂模式的局限性11.3 异步构造:异步 阅读全文
posted @ 2024-12-09 16:14 平元兄 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 第十章:取消 目录第十章:取消10.1 发起取消请求:CancellationTokenSource 的用法核心概念基本用法示例代码等待任务并处理结果现实场景中的使用竞争条件与取消结果最佳实践10.2 通过轮询响应取消请求核心概念基本用法优化轮询频率轮询频率的选择IsCancellationRequ 阅读全文
posted @ 2024-12-09 16:13 平元兄 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 第九章:并发集合 目录第九章:并发集合简介不可变集合线程安全集合生产者与消费者集合生产者-消费者集合类型9.1 不可变的栈和队列问题解决方案不可变栈(ImmutableStack<T>)不可变队列(ImmutableQueue<T>)讨论9.2 不可变列表 (ImmutableList<T>)问题解 阅读全文
posted @ 2024-12-09 16:12 平元兄 阅读(72) 评论(0) 推荐(1) 编辑
摘要: 第八章:C#封装与互操作:将传统异步模式转换为现代异步模式 目录第八章:C#封装与互操作:将传统异步模式转换为现代异步模式8.1 将基于事件的异步模式(EAP)封装为异步任务(TAP)问题背景解决方案:使用 TaskCompletionSource<TResult>示例:封装 WebClient 的 阅读全文
posted @ 2024-12-09 16:07 平元兄 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 第七章:C#响应式编程System.Reactive 目录第七章:C#响应式编程System.Reactive7.1 为什么选择响应式编程?1. 事件流的重要性2. Rx.NET 的优势3. Rx.NET 的适用场景4. Rx.NET 的核心思想小结7.2 主要概念和类型1. IObservable 阅读全文
posted @ 2024-12-09 16:04 平元兄 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 第六章:C#数据流基础 目录第六章:C#数据流基础6.1 关联的块6.1.1 块的基本概念6.1.2 块的关联与 LinkTo6.1.3 PropagateCompletion:传播完成状态6.1.4 通过 LinkTo 进行数据过滤6.1.5 数据流中的分叉和循环6.1.6 讨论6.2 传播错误6 阅读全文
posted @ 2024-12-09 15:55 平元兄 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 第五章:C#并行编程基础 目录第五章:C#并行编程基础5.1 并行处理:使用 Parallel.ForEach 和 Parallel.For问题解决方案示例 1:并行计算大量数字的平方根示例 2:提前终止并行计算示例 3:并行计算时使用 CancellationToken示例 4:处理共享状态Par 阅读全文
posted @ 2024-12-09 15:53 平元兄 阅读(58) 评论(0) 推荐(0) 编辑