排序
WPF 从 WriteableBitmap 里获取到渲染线程使用的 IWICBitmap 对象
WPF 从 WriteableBitmap 里获取到渲染线程使用的 IWICBitmap 对象,在 WPF 框架底层里面,对 WriteableBitmap 的实现是有双份内存,具体实现放在 CSwDoubleBufferedBitmap 里面。表层的内存是一...
.NET外挂系列:4. harmony 中补丁参数的有趣玩法(上)
.NET外挂系列:4. harmony 中补丁参数的有趣玩法(上),一:背景 1. 讲故事 前面几篇我们说完了 harmony 的几个注入点,这篇我们聚焦注入点可接收的几类参数的解读,非常有意思,在.NET高级调试...
记一次 .NET 某SaaS版CRM系统 崩溃分析
记一次 .NET 某SaaS版CRM系统 崩溃分析,一:背景 1. 讲故事 调试训练营里的一位学员前些天找到我,说他们跑在k8s中的程序崩掉了不知道怎么回事?日志也没有记录到,让我帮他看看,dump也抓到了...
DotTrace系列:8. 时间诊断之 异步代码 和 Task任务
DotTrace系列:8. 时间诊断之 异步代码 和 Task任务,一:背景 1. 讲故事 现如今的很多代码都是awaitasync+Task的方式,对它们进行性能洞察非常有必要,awaitasync 本质上就是将状态机塞入到 Tas...
[原创]《C#高级GDI+实战:从零开发一个流程图》第07章:来吧,自定义“画布”控件!
[原创]《C#高级GDI+实战:从零开发一个流程图》第07章:来吧,自定义“画布”控件!,一、前言 上节课已经抽象出来了形状和连线,但是没解决程序复用的问题:现在所有的代码是写在窗口中的,如果...
3D文档控件Aspose.3D实用教程:在 C# 中将 3MF 文件转换为 STL
3D文档控件Aspose.3D实用教程:在 C# 中将 3MF 文件转换为 STL, 3MF和STL都是 3D 建模软件广泛使用的 3D 文件格式。在某些情况下,由于行业标准要求和兼容性,STL 文件格式更受青睐。本教程将演...
C# 实现 Word 与 TXT 互转的技术方案
C# 实现 Word 与 TXT 互转的技术方案,在办公自动化与数据处理场景中,Word 与 TXT 格式的双向转换是常见需求,例如从 Word 提取纯文本用于数据预处理、将 TXT 内容规整为 Word 文档以满足格式要...
dotnet 读 WPF 源代码 学习使用 Microsoft.DotNet.Arcade.Sdk 处理代码里的多语言
dotnet 读 WPF 源代码 学习使用 Microsoft.DotNet.Arcade.Sdk 处理代码里的多语言,在 dotnet 庞大的生态集里,打包工具链是开源中很重要的部分工作。通过 https://github.com/dotnet/arcade 将...
使用.NET开发并上线一个小智AI对话机器人的MCP服务转接平台
使用.NET开发并上线一个小智AI对话机器人的MCP服务转接平台,前言 最近小智AI对话机器人在ESP32社区实在是太火了,看过之前文章的小伙伴应该都知道之前有给桌面机器人开发过一个.NET客户端,所以对...
PPT处理控件Aspose.Slides教程:在 C# 中将 PPTX 转换为 Markdown
PPT处理控件Aspose.Slides教程:在 C# 中将 PPTX 转换为 Markdown, 将您的PowerPoint幻灯片转换为Markdown格式,使其兼容 AI 技术。在这个人工智能驱动的时代,GPT和Claude等大模型能够读取和生...
Runtime Async – 步入高性能异步时代
Runtime Async - 步入高性能异步时代,同步代码和异步代码 一般而言,代码可分为同步与异步两类。两者同样需要等待操作完成:同步会阻塞当前线程,直至操作结束后再继续执行后续逻辑;异步则不阻...
CodeSpirit 开发环境搭建及启动指南
CodeSpirit 开发环境搭建及启动指南,概述 本指南将帮助您快速搭建CodeSpirit(码灵)低代码框架的开发环境。CodeSpirit基于 .NET 10 和 Aspire 13.0 构建,通过简单的几个步骤即可启动完整的开...




![[原创]《C#高级GDI+实战:从零开发一个流程图》第07章:来吧,自定义“画布”控件!-拾光赋](https://cos.blogs.ink/wp-content/uploads/2025/07/1338c086749127073b5796b8dee63b67-300x187.webp)








