聊一聊 C#线程池 的线程动态注入 (上)-牛翰网

聊一聊 C#线程池 的线程动态注入 (上)

一:背景 1. 讲故事 在线程饥饿的场景中,我们首先要了解的就是线程是如何动态注入的?其实现如今的ThreadPool内部的实现逻辑非常复杂,而且随着版本的迭代内部逻辑也在不断的变化,有时候也没...
聊一聊 C#前台线程 如何阻塞程序退出-牛翰网

聊一聊 C#前台线程 如何阻塞程序退出

一:背景 1. 讲故事 这篇文章起源于我的 C#内功修炼训练营里的一位朋友提的问题:后台线程的内部是如何运转的 ? ,犹记得C# Via CLR这本书中 Jeffery 就聊到了他曾经给别人解决一个程序无法退出...
AOT漫谈专题(第七篇): 聊一聊给C#打造的节点依赖图-牛翰网

AOT漫谈专题(第七篇): 聊一聊给C#打造的节点依赖图

一:背景 1. 讲故事 上一篇我们聊过AOT编程中可能会遇到的三大件问题,而这三大件问题又是考验你对AOT中节点图的理解,它是一切的原点,接下来我就画几张图以个人的角度来解读下吧,不一定对。 ...
AOT漫谈专题(第六篇): C# AOT 的泛型,序列化,反射问题-牛翰网

AOT漫谈专题(第六篇): C# AOT 的泛型,序列化,反射问题

一:背景 1. 讲故事 在 .NET AOT 编程中,难免会在 泛型,序列化,以及反射的问题上纠结和反复纠错尝试,这篇我们就来好好聊一聊相关的处理方案。 二:常见问题解决 1. 泛型问题 研究过泛型的朋...
AOT漫谈专题(第四篇): C#程序如何编译成Native代码-牛翰网

AOT漫谈专题(第四篇): C#程序如何编译成Native代码

一:背景 1. 讲故事 大家都知道所谓的.NET Native AOT即通过AOT编译器直接将C#代码编译成机器码,大家也习惯用C/C++的编译过程来类比,都是静态编译本质上都差不多,这篇我们借助工具从宏观层面...
AOT漫谈专题(第三篇): 如何获取C#程序的CPU利用率-牛翰网

AOT漫谈专题(第三篇): 如何获取C#程序的CPU利用率

一:背景 1. 讲故事 上篇聊到了如何对AOT程序进行轻量级的APM监控,有朋友问我如何获取AOT程序的CPU利用率,本来我觉得这是一个挺简单的问题,但一研究不是这么一回事,这篇我们简单的聊一聊。 ...
AOT漫谈专题(第一篇): 如何调试C# AOT程序-牛翰网

AOT漫谈专题(第一篇): 如何调试C# AOT程序

一:背景 1. 讲故事 上个月接到了二个C# AOT程序的故障分析,发现如今的C# AOT程序也开始在各个领域开枝散叶了,这是一件非常好的事情,本着对这类程序有一个专业的维修态度,开一个系列好好聊...
聊一聊 C#中有趣的 SourceGenerator生成器-牛翰网

聊一聊 C#中有趣的 SourceGenerator生成器

一:背景 1. 讲故事 前些天在看 AOT的时候关注了下 源生成器,挺有意思的一个东西,今天写一篇文章简单的分享下。 二:源生成器探究之旅 1. 源生成器是什么 简单来说,源生成器是Roslyn编译器给...
记一次 .NET某上位机视觉程序 卡死分析-牛翰网

记一次 .NET某上位机视觉程序 卡死分析

一:背景 1. 讲故事 前段时间有位朋友找到我,说他的窗体程序在客户这边出现了卡死,让我帮忙看下怎么回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 为什么会卡...
.NET高级调试之sos命令输出看不懂的处理方法-牛翰网

.NET高级调试之sos命令输出看不懂的处理方法

目录 一:背景 1. 讲故事 二:WinDbg 分析 2. 取自哪里 3. 如何模拟复现 三:总结 一:背景 1. 讲故事 很多.NET开发者在学习高级调试的时候,使用sos的命令输出会发现这里也看不懂那里也看不懂...