2025年4月23日
摘要: Windbg系列之定位内存爆高代码 先写一个模拟程序,将内存拉高 public class TestService { public List<byte[]> Datas { get; set; } = new List<byte[]>(); public void Add() { for (int 阅读全文
posted @ 2025-04-23 11:56 baby-jie 阅读(60) 评论(0) 推荐(0)
  2025年4月20日
摘要: PerfView系列之探究cpu爆高原因 今天我们用PerfView来探究一下程序cpu爆高的原因,首先构建一个模拟cpu爆高的程序 internal class Program { static void Main(string[] args) { Task.Run(() => Test1()); 阅读全文
posted @ 2025-04-20 22:07 baby-jie 阅读(170) 评论(0) 推荐(0)
  2025年4月18日
摘要: 记一次.net异常代码位置定位 今天公司的技术支持在现场发了一张软件异常的图片给我,如下图 从日志图形界面看出,只有一个索引超出数组范围的错误信息,判定不了出错的代码位置在哪里,于是又让他去日志文件把错误日志摘出来,如下所示 2025-04-18 11:00:00:740 XXXX.XXXX.XXX 阅读全文
posted @ 2025-04-18 20:13 baby-jie 阅读(29) 评论(0) 推荐(0)
  2025年4月17日
摘要: 伪弹窗实现UI线程等待耗时操作完成 在日常开发中,经常遇到主线程因为某些耗时操作导致UI卡死的情况,一般的解决方案是开启另外一个线程去做耗时操作,等耗时操作完成再调用 Dispatch 在主线程中执行结果(比如界面显示等)。 举个栗子 现有一个 StudentService 类,可以计算学生的数量 阅读全文
posted @ 2025-04-17 14:22 baby-jie 阅读(25) 评论(0) 推荐(0)
  2025年4月14日
摘要: Prism系列之如何使用弹窗 自定义弹窗窗口 基础弹窗 先定义一个窗口类 CustomDialog,并实现 IDialogWindow 接口,xaml 代码部分不需要修改。 public partial class CustomDialog : Window, IDialogWindow { pub 阅读全文
posted @ 2025-04-14 20:12 baby-jie 阅读(134) 评论(0) 推荐(0)
  2025年4月9日
摘要: .net Task底层原理探究 自从 .Net Framework 4.0 增加了 Task 之后,日常开发中的多线程需求,几乎都会用 Task 功能,那么 Task 究竟是什么?底层运行原理是什么?今天就来深挖一下。 整个 Task.cs 文件,有7000多行代码,可见其复杂性 创建Task的几种 阅读全文
posted @ 2025-04-09 17:45 baby-jie 阅读(43) 评论(0) 推荐(0)
  2025年3月11日
摘要: 记一次网络扫描 场景 在开发上位机控制PLC时,遇到一个情况,项目负责人说PLC设备已经设置好局域网ip了,但是忘了具体设置的ip地址 解决办法 项目负责人说要找人重置设备的时候我拉住了他,重置需要时间,重置后还需要设置一大堆配置,不如先网络扫描一下局域网中有哪些在线的主机,然后拔掉网线,再扫描一遍 阅读全文
posted @ 2025-03-11 18:34 baby-jie 阅读(24) 评论(0) 推荐(0)
  2025年2月12日
摘要: volatile修饰词的作用 在阅读源码时,经常看到某些变量被 voltaile 修饰,不知道其作用,所以深入了解了一下 先说结果: 防止在release模式下编译时代码被优化,变量被缓存到寄存器中 这样的优化在多线程环境下可能会出现业务上的错误。 场景演示 source code namespac 阅读全文
posted @ 2025-02-12 22:20 baby-jie 阅读(36) 评论(0) 推荐(0)