刷新
缓存读写代码逻辑的正确姿势

博主头像 缓存通常用于提高数据访问的效率。一般来说,缓存读取和写入的逻辑遵循“先从缓存取,取不到再从数据库获取并写回缓存”的原则。为了避免多个线程同时修改缓存数据,我们需要加锁来保证数据一致性。 逻辑概述 读取缓存:缓存命中直接返回。 缓存未命中:加锁,然后再次读取缓存,缓存命中直接返回。 缓存还是未命中:执 ...

使用 C# 实现 PDF 文档对比

博主头像 在日常开发或办公场景中,PDF 文档对比是高频需求(如合同版本迭代校验、技术文档审核、报表一致性验证等)。市面上虽有 Adobe Acrobat 等可视化对比工具,但通过编程实现 PDF 对比可满足自动化、定制化的业务需求。本文将介绍如何使用免费库 Free Spire.PDF for .NET 对 ...

c#实现包裹扣面单的几种方式

博主头像 无论是跨境电商还是制造业分拣设备,在包裹流转出入库的场景,为了保证包裹分拣计划和测量数据绑定真实性,经常会遇到面单扣取的需求,下面我就通过两种实现原理来实现这一功能。 一:OpenCVSharp 通过面单轮廓/颜色/边缘等组合检测实现 二:通过OCR识别面单内容,根据所有切割点坐标点最小外界矩形来定 ...

如何通过 C# 将 PPT 文档转换为 PDF 格式

博主头像 在日常开发和办公场景中,将 PowerPoint(PPT/PPTX) 转换为 PDF 格式是高频需求。PDF 格式具有跨平台兼容性强、格式固定不易篡改、便于分发归档等优势。本文将介绍如何使用一款 .NET PowerPoint 组件通过 C# 实现 PPT 转 PDF,并提供完整代码示例。 1. 安 ...

使用 C# 实现 RTF 文档转 PDF 格式

博主头像 RTF(Rich Text Format)作为跨平台富文本格式,常用于文档编辑与数据交换,而 PDF 因格式稳定、跨设备兼容性强,更适合文档分发和归档。在 .NET 开发中,实现 RTF 到 PDF 的转换是常见需求,本文将介绍如何使用免费库 Free Spire.Doc for .NET 实现该转 ...

记一次 .NET 某MES上位机拍照系统 内存暴涨分析

博主头像 一:背景 1. 讲故事 这是训练营里的一位朋友找到我的,说他们的系统会有偶发的内存暴涨情况,自己也没分析出来,让我帮忙看下怎么回事,拿了一个20G+的dump文件,这文件是够大的,我个人建议一般是不超过10G,不然的话windbg分析起来很吃力。 二:内存暴涨分析 1. 为什么会内存暴涨 还是老办法 ...

C# 不依赖 OpenCV 的图像处理算法:滤波、锐化与边缘检测

博主头像 前言 数字图像处理作为计算机视觉和多媒体技术的基础内容,其核心不仅在于理解算法原理,更在于动手实现与验证。为了深入掌握本项目选择从底层像素级别出发,使用C#语言手动实现各类经典图像处理算法,避免依赖现成的高级图像库。 这种"从零开始"的方式虽然开发成本较高,却能真正厘清每个操作背后的数学逻辑与工程细 ...

记一次 .NET 某RFID标签打印客户端 崩溃分析

博主头像 一:背景 1. 讲故事 去年微信上有位朋友找到我,说他们的RFID标签打印出现了偶发性崩溃,一直没找到原因,让我帮忙看下怎么回事?然后就让这位朋友用procdump抓一个崩溃dump给我,我看看就好。 二:崩溃分析 1. 为什么会崩溃 双击打开dump,windbg会自动定位到崩溃的上下文,这一点我 ...

基于SqlSugar开发框架的基础上快速开发H5端的移动应用

博主头像 在开发一些项目的时候,我们往往会基于一定的框架进行业务的开发,并结合一些辅助工具进行更高效率的快速开发和整合工作,SqlSugar开发框架是我们开发的一个多端整合的开发框架,基于它的后端WebAPI 基础上,我们可以对接WInform端、Vue3+ElementPlus的BS端,Vue3+Vant4... ...

CodeSpirit 开发环境搭建及启动指南

博主头像 概述 本指南将帮助您快速搭建CodeSpirit(码灵)低代码框架的开发环境。CodeSpirit基于 .NET 10 和 Aspire 13.0 构建,通过简单的几个步骤即可启动完整的开发环境。 最后更新: 2025年12月22日 框架版本: v2.0.0 快速开始 前置要求 操作系统: Wind ...

基于莱布尼茨公式的编程语言计算性能基准测试

博主头像 利用莱布尼茨公式(Leibniz formula)计算圆周率 $\pi$。尽管在现代数学计算库中,莱布尼茨级数因其收敛速度极慢而鲜被用于实际精算 Π 值,但其算法结构——高密度的浮点运算、紧凑的循环逻辑以及对算术逻辑单元(ALU)的持续压力——使其成为测试 CPU 单核吞吐量、浮点运算单元(FPU) ...

国产化Word处理控件Spire.Doc教程:使用C# 编程方式批量转换Word为RTF

博主头像 在跨平台共享 Word 文件时,经常会遇到兼容性问题。将 Word 文档转换为 RTF(富文本格式)不仅可以保留基本排版和样式,还能提高在不同设备、操作系统和办公软件中的兼容性,使文件更容易被顺利打开和使用。本文将围绕 Word 转 RTF 的需求,系统如何借助Spire.Doc,使用C#编程的方式... ...

通过 C# 为 PDF 文档添加电子签名

博主头像 电子签名在文档合规性与安全性保障中扮演着重要角色,基于 C# 开发 PDF 电子签名功能是企业级文档处理场景的常见需求。Spire.PDF for .NET 作为国产 PDF 处理类库,无需依赖 Adobe Acrobat 等第三方软件,即可便捷实现 PDF 电子签名添加。本文将介绍该类库的使用方式 ...

Avalonia源码解读:Grid(网格控件)

博主头像 在各类XAML UI框架中,Grid 是一种非常灵活且常用的布局控件,它可以创建复杂的用户界面布局。Grid 允许开发者通过定义行和列来组织界面元素,每个元素可以精确地放置在网格的特定区域内 本文以 Avalonia 框架为例,讲解 Grid 控件的工作原理 ...

TypedSql:在 C# 类型系统上实现一个 SQL 查询引擎

博主头像 前言 在 .NET 里写查询的时候,很多场景下数据其实早就都在内存里了:不是数据库连接,也不是某个远程服务的结果,而就是一个数组或者 List<T>。我只是想过滤一下、投影一下。这时候,通常有几种选择: 写一个 foreach 循环 —— 性能好、可控,但代码稍微有点啰嗦; 用 LINQ —— 写起 ...

对 .NET FileSystemWatcher引发内存碎片化的 反思

博主头像 一:背景 1. 讲故事 前些天又遇到了一例 FileSystemWatcher 引发的内存碎片化故障,但这个碎片化不是因为经典的 reloadOnChange=true 导致的,所以我觉得有必要做一次深度的反思,供以后遇到类似问题提供技术上的解决方法,这篇我们就来系统的讲解下 两种碎片化方式的调查方 ...

123···12>