摘要: 目录前言从表象讲起Task 从何而来Task 常见用法Task 的分类按是否包含 Result 分,也就是是否是泛型 Task按得到 Task 的方式,可以分为对 Task 进行分解Task 在哪执行?线程池一个独立的后台线程中自定义的TaskScheduler里Task 可以封装任何类型的别的任务 阅读全文
posted @ 2022-01-19 22:57 黑洞视界 阅读(11122) 评论(20) 推荐(56) 编辑
摘要: 前言 自 .NET 6 起,runtime 中默认的线程池实现从 C++ 代码改为了 C#,更方便我们学习线程池的设计了。 https://github.com/dotnet/runtime/tree/release/6.0/src/libraries/System.Threading.Thread 阅读全文
posted @ 2021-09-21 17:00 黑洞视界 阅读(16818) 评论(33) 推荐(115) 编辑
摘要: 说明 本文主要描述 Linux 环境下 .NET Core 程序的问题分析方案,也会提及如何将 Linux 系统中保存好的 core dump 文件转移到其他位置进行分析,Mac 环境中未尝试成功,Windows 中推荐使用 WSL。 将依次讲解如何在 .NET Core 2.x、.NET Core 阅读全文
posted @ 2021-01-03 12:57 黑洞视界 阅读(3808) 评论(5) 推荐(10) 编辑
摘要: 前言 最近 Task.Run 相关的话题在园子里讨论的比较热闹。其中有个比较重要的配角,传给 Task.Run 的委托。而这个委托是通过 Lambda 表达式 来构建的。那 Lambda 表达式到底是个什么? 本文例子基于 .NET Core 3.1 的编译结果反编译得出结论,不同版本的编译器的编译 阅读全文
posted @ 2020-12-12 00:41 黑洞视界 阅读(1133) 评论(0) 推荐(10) 编辑
摘要: 前言 对于写过 ASP.NET Core 的童鞋来说,可以通过 HttpContextAccessor 在 Controller 之外的地方获取到HttpContext,而它实现的关键其实是在于一个AsyncLocal<HttpContextHolder> 类型的静态字段。接下来就和大家来一起探讨下 阅读全文
posted @ 2020-01-29 17:01 黑洞视界 阅读(10822) 评论(15) 推荐(42) 编辑
摘要: 前言 本文主要是以 C# 为例介绍 .NET 中的三种指针类型(本文不包含对于函数指针的介绍):对象引用、非托管指针 、托管指针。 学习是一个不断深化理解的过程,借此博客,把自己关于 .NET 中指针相关的理解和大家一起讨论一下,若有表述不清楚,理解不正确之处,还请大家批评指正。 开始话题之前,我们 阅读全文
posted @ 2019-02-09 16:17 黑洞视界 阅读(8047) 评论(9) 推荐(34) 编辑
摘要: 在某些情况,我们希望能延迟一个依赖的初始化。如果使用的是autofac,我们可以通过注入Lazy来实现。 我们对 autofac GitHub上提供的一个例子进行进行简单改造,跑起来看看。 原Example的链接https://github.com/autofac/Examples/tree/mas 阅读全文
posted @ 2018-08-27 22:41 黑洞视界 阅读(3010) 评论(3) 推荐(8) 编辑
摘要: 1、 闭包的含义 首先闭包并不是针对某一特定语言的概念,而是一个通用的概念。除了在各个支持函数式编程的语言中,我们会接触到它。一些不支持函数式编程的语言中也能支持闭包(如java8之前的匿名内部类)。 在看过的对于闭包的定义中,个人觉得比较清晰的是在《JavaScript高级程序设计》这本书中看到的 阅读全文
posted @ 2018-08-25 20:41 黑洞视界 阅读(15462) 评论(11) 推荐(36) 编辑
摘要: 因为对表达式树有点兴趣,出于练手的目的,试着写了一个深拷贝的工具库。支持.net standard2.0或.net framework4.5及以上。 GitHub地址https://github.com/blurhkh/DeepCopier nuget地址https://www.nuget.org/ 阅读全文
posted @ 2018-04-06 22:37 黑洞视界 阅读(1874) 评论(8) 推荐(4) 编辑