刷新
DotMemory系列:2. 事件泄露引发的内存暴涨分析

博主头像 一:背景 1. 讲故事 事件泄露导致的内存暴涨,说实话我以前是不敢相信的,因为我认为没人会写这样的代码,但现实往往都会打脸,还是太年轻了,今年年中的时候还真给遇到了,也算是无语啦,这一篇我们就来聊一聊如何通过 DotMemory 来一探究竟。 二:内存暴涨分析 1. 问题代码 为了方便讲述,先来一段 ...

DotMemory系列:1. 终结队列积压引发的内存暴涨分析

博主头像 一:背景 1. 讲故事 说实话本来是不想写这个系列的,因为我潜意识里觉得这款工具就像美图秀秀一样,拉低专业人士的档次,但奈何在训练营里我需要用到 dottrace 这款工具,而我向官方申请再续了一年免费的Pack套件也给我通过了,所以我觉得要对得起他们,得要写点什么,截图如下: 这几天我也仔细看了下 ...

记一次 .NET 某理财管理客户端 OOM溢出分析

博主头像 一:背景 1. 讲故事 这是训练营里的学员找到我的,让我帮忙看下为什么他的客户程序会偶发的出现 报错弹框,由于dump比较敏感,这里就不截图发出来了,由于是错误弹框,并不会出现程序崩溃,而且朋友在日志中也看到了 OOM 异常,就是因为这个 OOM 异常导致了后续流程的 报错弹框,说这个程序的内存还行 ...

记一次 .NET 某医联体管理系统 崩溃分析

博主头像 一:背景 1. 讲故事 这段时间都在跑外卖,感觉好久都没写文章了,今天继续给大家带来一篇崩溃类的生产事故,这是微信上有位老朋友找到我的,让我帮忙看下为啥崩溃了,dump也在手,接下来就可以一顿分析。 二:崩溃分析 1. 为什么会崩溃 双击打开dump文件,会看到崩溃信息通览,参考如下: Execut ...

WPF 如何支撑一个灵活的流程图编辑器?

博主头像 前言 软件开发领域,流程设计与可视化是提升系统可维护性、增强用户体验的重要手段。无论是工作流管理、业务逻辑编排还是算法流程展示,一个灵活、易用的流程节点编辑框架都能极大地提高开发效率与系统灵活性。 本文将推荐一款基于 WPF 的开源流程节点编辑框架,通过对其核心设计与实现逻辑的解析,带领大家从零开始 ...

记一次 .NET 某光放测试系统 崩溃分析

博主头像 一:背景 1. 讲故事 微信好友里有位朋友找到我,说他部署在windows上的程序,用debug模式正常,但用 release 模式跑程序就崩溃,如果把程序切到 .NET6 的话又都正常,所以很迷茫,让我看看怎么回事,哈哈,这种问题直接抓dump分析就好了。 二:崩溃分析 1. 为什么会崩溃 分析过 ...

记一次 .NET 某药品缺陷高速检测系统 卡慢分析

博主头像 一:背景 1. 讲故事 上个月有位朋友找到我,说他们公司的程序当内存达到一定阈值(2g+)之后,业务逻辑明显变慢导致下位机超时报警,想让我看下到底怎么回事,这种问题其实抓dump比较难搞,但朋友也说了有一个增长阈值,那就让朋友抓一个 2g+ 的dump发过来看看吧,当然越大越好。 二:内存洞察分析 ...

C# 实现 Word 与 TXT 互转的技术方案

博主头像 在办公自动化与数据处理场景中,Word 与 TXT 格式的双向转换是常见需求,例如从 Word 提取纯文本用于数据预处理、将 TXT 内容规整为 Word 文档以满足格式要求等。传统采用 Microsoft.Office.Interop.Word 实现转换时,存在需依赖本地 Office 环境、版本 ...

合并多个PDF文档:C# 解决方案

博主头像 在实际项目开发中,我们经常会遇到需要将多个 PDF 文件合并成一个文档的需求,或者从多个 PDF 中抽取部分页面组合成新的 PDF。本文将介绍如何使用 Spire.PDF for .NET 库实现以下两个功能: 合并多个完整的 PDF 文档 合并多个 PDF 中的指定页面 1. 安装 Spire.P ...

使用OpenCvSharp , Emgu.CV 手搓 视觉识别算法 以及 成果展示

博主头像 举个 一个培养皿里有若干条鱼苗,需要将它全部区分识别出来, 像如下图所示的小蝌蚪就是(培养皿里三个黑点是热带鱼苗,做实验用的,一毫米长) 用的是海康威视的黑白工业相机拍摄。 先讲讲思路,图片是一组庞大的矩阵数据,每一个像素点有用数据为五个分别为RGB(三原色),以及XY坐标。也就是说我们能将整张 ...

用友U8Api 接口对接

博主头像 U8 API接口集成主要用于第三方系统与用友U8ERP系统进行数据交互,实现业务系统对接 文档中接口集成了用友U8各个版本的数据对接功能,支持U8.9到 U818.0版本要求,摒弃了eai、openapi、api、暴力插库等接口的方式,全部采用co进行集成,通过几十个大大小小项目的对接、迭代验证,展 ...

BindingList的应用与改进

博主头像 在编写UI的过程中,我们通常使用ObservableCollection来监听列表的变化。然而,ObservableCollection只能在添加/移动/移除元素时通知界面,这意味着元素内部更改时,ObservableCollection是无法通知的 如果需要监听列表元素内部的更改,可以使用Syst ...

使用 CsWin32 和 ComWrappers 实现 COM 接口

博主头像 基础概念 CsWin32 是微软开发的一个 C# 的源生成器,可以按需生成 C# PInvoke 代码,也支持生成系统的 COM 接口定义。 ComWrappers 是 dotnet 5 引入的新的和 COM api 互操作的组件。 生成支持 AOT 的 COM 接口 使用 CsWin32 生成 C ...

[原创]《C#高级GDI+实战:从零开发一个流程图》第10章:鼠标拖动完成连线、拖动时实时显示半透明虚线连线效果、自定义连接点样式

博主头像 一、前言 上节课程我们实现了连接形状不同的连接点,但在实际使用中会发现很繁琐,需要分别指定开始形状和结束形状的连接点,这明显不符合操作经验逻辑。我们本节课程就来实现鼠标拖动完成连线,拖到哪个连接点就对哪个连接点完成连线,所见即所得,而且在拖动连线过程中,还会实时显示虚线箭头用于提示。 相信看完的你, ...

<1234···12>