2026.3.25笔记C#
1、
在项目代码中执行对应的硬件操作后,采用循环监测进行判断是否达到相应的状态。
startTime被初始化为所能表示的最小时间值(仅为了确保能进入后续的while循环)。
endTime被设置为当前时间加上 30 秒。这定义了这段代码最多愿意等待多久(即 30 秒超时限制)。
2、对于可能持续运行几百上千小时的设备,推荐使用基于 SkiaSharp 的高性能图表库。以LiveChartsCore.SkiaSharpView.WPF (LiveCharts2)为例,它天然支持 MVVM 模式,且底层使用 GPU 渲染,百万数据点也不会卡顿UI界面。
3、堆栈的形象类比解释
栈(Stack - 弹簧夹板):
它就在你手边,速度极快。
它的规则是“后进先出(LIFO)”:你只能把最新的任务纸夹在最上面;做完当前任务后,把最上面这改纸撕掉,才能看到底下的任务。
容量小,只记小东西:这张纸上只够写一些简单的、固定大小的数据(比如:温度 = 35,开关状态 = 关)。在 C# 中,这叫值类型(Value Types),比如int、double、bool。
栈(Stack)最大的优点就是“干净利落,绝不留垃圾”。完成了这个任务。此时,他会**“唰”地一下,把夹板最上面的那张任务纸直接撕掉扔进碎纸机**。
堆(Heap - 重型机械仓库):
当你用new SmartMotor()制造一台庞大的电机时,你的夹板上根本放不下这台机器!
所以,工人们会把机器造在**仓库(堆)**里。
然后,在你的夹板(栈)上,你只写下一张小纸条:“这台电机放在仓库的 A区-05号货架”。这个小纸条在 C# 中叫引用(Reference)。
联想易混淆点如下:
