- 博客(32)
- 收藏
- 关注
原创 C# 线程交互
如果你想在多个方法之间共享数据,但又不想让这个数据成为公共的(即不想让其他类直接访问),可以将它定义为类的字段,并通过实例方法访问。虽然这不是真正的“全局”访问,因为它需要通过类的实例访问,但它仍然可以在多个方法间共享数据。中,全局变量是指在程序的任何地方都可以访问的变量。通常,全局变量是在类的外部定义的,或者在所有方法之外定义的。:异步调用,当前线程不会阻塞,委托会立即被加入目标线程的消息队列,由目标线程异步执行。你可以在类定义之外定义全局变量,但这通常不推荐,因为这违背了面向对象编程的原则,即封装性。
2025-06-10 19:32:33
557
原创 C# 十种线程讲解
这些库提供了一组高级的并行处理工具,简化了并行和多线程编程的复杂性,使得开发人员能够更轻松地利用多核处理器的优势。进行了扩展,包括新的并行库方法、取消支持和异常聚合等功能,进一步提高了并行和异步编程的灵活性和性能。线程池是一组可重复使用的线程,在需要时分配给任务,以避免频繁创建和销毁线程的开销。缺点:功能较少,不适合复杂的线程管理;时,它会暂停当前方法的执行,直到等待的任务完成。使用场景:需要延迟初始化对象,以节省资源或处理耗时的初始化任务。使用场景:需要高效利用线程池资源,执行大量短时间的任务。
2025-06-10 19:28:49
508
原创 开机运行+后台运行讲解
如果要找到“应用程序”的“进程”,只需在任务管理器中右键点击某一个应用程序,选择“转到进程”,就会自动跳到该应用程序的进程上了。通过注册表,用户可以更改系统的外观、行为和功能。一个“应用程序”一定可以找到一个“进程”,但一个“进程”不一定会有一个“应用程序”与之对应,这些进程有可能是后台程序,用户看不到,感觉不到。:注册表包含了操作系统、应用程序、硬件设备和用户的配置信息。:注册表记录了安装在计算机上的软件和程序的信息,包括硬件配置、自动配置的即插即用设备和已有的各种设备说明、状态属性等。
2025-06-10 19:24:07
348
原创 半导体固晶机关键技术
图可以精确识别和定位基板上的芯片位置,确保芯片能够准确地放置在预定的位置上。这依赖于高精度的视觉定位系统和图像处理软件,能够识别芯片和基板的位置、角度等信息。图,系统可以绑定基板批次、供应商、工艺参数等信息,实现从原材料到成品的双向追溯。通过实时追踪基板上的每一颗芯片状态,可以在关键工序中自动跳过不良品,避免无效加工,从而减少。由于它允许多个线程同时响应信号,减少了线程的等待时间,从而提高了整体的处理速度。图能够精准追踪不同晶圆来源的芯片在基板上的位置,确保复杂结构的良率可控。
2025-06-10 19:11:37
661
原创 工业通讯工具讲解十种通讯工具
允许你“记录”应用程序的运行,然后分析记录的性能。你将能够看到每种调用方法花费了多长时间,数据库调用,这是一个内置的日志记录系统,运行速度非常快,这是我最喜欢的性能分析工具。的每个部分都可以使用它。请求以及垃圾回收期间花费的时间等等。
2025-06-10 19:06:38
159
原创 工业光源选型讲解
红色光源的散射较小,能够形成清晰的阴影和轮廓,有助于突出物体的边缘和形状。:白色光源是最常用的一种,能够提供较为均匀的全光谱照明,真实还原物体的颜色和表面细节。适用于大多数的工业视觉检测场景,如物体的外观检测、尺寸测量、缺陷检测等,对颜色和纹理的识别效果较好。在实际应用中,应根据被测物的材质、结构和检测要求选择合适的光源,以实现最佳检测效果并确保工业生产质量。通过足够的亮度和均匀的光线分布,弥补环境光的不足,突出被测物体的细节特征(如表面划痕、尺寸轮廓等)。屏检测、视频监控等方面。
2025-06-10 15:41:46
415
原创 工业镜头选型讲解
使用过程中需注意,在远心镜头的物镜垂直下方区域内的像都是远心成像,而超出此区域的像就不是严格意义上的远心成像了,这点在实际的使用中一定要注意,否则会产生不必要的偏差。镜头在成像时,特别是用短焦距镜头拍摄大视场,图像会产生形变,这种情况叫做镜头的畸变,这是由于镜头的光学结构和成像特性导致的,原因是由于视野中局部放大倍数不一致造成的图像扭曲。拍摄的视场越大,所用的镜头的焦距越短,畸变的程度就越明显,一般有桶型畸变和枕型畸变两种,可以通过图像标定减弱这种平面畸变的影响。设计远心镜头的目的是消除由于被测物体(或。
2025-06-10 15:36:31
757
原创 工业相机选型讲解
像元尺寸从某种程度上反映了芯片的对光的响应能力,像元尺寸越大,能够接收到的光子数量越多,在同样的光照条件和曝光时间内产生的电荷数量越多。是不是有些迷惑了,听起来感觉和前面所说的相机分辨率很像,前面的相机分辨率值越小,分辨率高,这里是像元尺寸越大, 灵敏度越高。传感器尺寸大,在同样的像素密度下,像元尺寸也会大,这样会增加每个像元的感光面积,对提高图像的质量有益。个像素色块的大小是不一样的。英寸之类的尺寸,既不是任何一条边的尺寸,也不是其对角线尺寸,看着这样的尺寸,往往难以形成具体尺寸大小的概念。
2025-06-10 15:31:18
727
原创 上位机程序运行BUG处理
块中时,你实际上市在抛出一个新的异常,而不是处理当前的异常,如果这个异常没有处理,会导致当前线程的退出,但是不会导致运行程序的退出。原因:未正确管理资源(如文件句柄、数据库连接、图形资源等),可能导致内存泄漏或其他资源耗尽问题。设计到运算、逻辑处理、业务运算等操作时,一定使用异常处理,定义或实例化变量时不建议使用。解决方案:优化内存使用,例如通过使用流来处理大数据文件,而不是一次性加载到内存中。使用的多了或许能有效的避免系统因异常而崩溃,但是过多的使用。接口的资源,确保资源被及时释放。
2025-06-10 15:24:51
188
原创 机器视觉标定讲解
备注:在获取标定图像时,标定板不动,机器人末端的摆动要尽可能的全面,绕各 个轴的旋转角要尽量的大。理论上图像越多, 角度越全面,标定精度越高。首先要获取相机的初始内参(焦距,畸变系数,单个像素的宽,单个像素高,图像 坐标的中心值横坐标,图像坐标中心值的纵坐标,图像宽度,图像高度)的方法,即已知多个点, 在像素坐标系的二维坐标, 和在世界坐标系的三维坐标,并且已知内参, 求解旋转平移矩阵。外参标定的核心是:已知多个点分别在相机坐标系下的坐标和在世界坐标系下的坐标, 求它们之间的映射关系。
2025-06-10 15:20:42
654
原创 Winform六种开源界面库
、免费的.NET WinForms控件库,它提供了广泛的组件和丰富的主题选项(用户友好、注重设计),让用户可以轻松创建美观、专业的桌面应用程序。,完全原生控件开发,没有使用任何第三方控件,你可以放心的用在你的项目中(界面库,致力于将现代美观的前端设计风格带入到桌面应用程序中。、开源控件库、工具类库、扩展类库、多页面开发框架(自定义控件,对触屏具有更好的操作支持,项目是基于。的窗口停靠、拖拽等功能,支持保存自定义布局为。绘图,不需任何图片资源,全面支持。
2025-06-10 15:14:58
347
原创 飞拍知识点讲解
飞拍就是使用硬件比较输出或精准输出端口在极短时间内触发相机拍照,而被测物品在拍照过程中仍处于运动状态,与此同时被测物品通过图像处理软件计算出其位置的偏移量,执行机构获取视觉输出的偏移量后再做出相应的动作指令。卷帘快门 :每一行开始曝光的时间点不同,有先后顺序,结束曝光时间也是不同,每一行曝光结束后读出一行(因为这种工作原理, 卷帘相机不适合运用在飞拍场景 ,容易造成图像变形)具体的检测精度要求了,例如对于尺寸测量的项目,拖影对测量精度会有严重影响,在这种情况下,就会要求拖影长度尽可能短,要求不超过。
2025-06-10 15:09:27
865
原创 电机的了解到调试全方面讲解
是一种将电能转换为机械能的装置,通常由定子、转子和电磁场组成。当电流通过电机的绕组时,产生的磁场会与电机中的磁场相互作用,从而使电机产生旋转运动。电机广泛应用于各种机械设备和工业生产中,是现代社会不可或缺的重要设备之一。常见的电机种类包括。
2025-04-08 00:03:28
821
原创 物联网MQTT最全最简单讲解
MQTT是一个基于发布订阅范式的“轻量级”消息协议,它工作在TCP/IP协议族上,并为低带宽、高延迟或不稳定的网络环境提供了可靠的消息传输服务。MQTT的最初设计是为了满足石油和天然气管道的远程监控需求,但随着时间的推移,其应用领域已经扩展到了包括智能家居、工业自动化、智慧城市在内的多个领域。二、MQTT是什么MQTT协议全称是(),即消息队列遥测传输协议。是一种基于发布订阅()模式的轻量级通讯协议,并且该协议构建于TCP/IP协议之上,我们知道TCP。
2025-04-01 21:51:06
798
原创 数据库SQL最全最简单讲解
SQL是用于访问和处理数据库的标准的计算机语言。SQL可与数据库程序协同工作,比如MS AccessDB2InformixOracleSybase以及其他数据库系统。但是由于各种各样的数据库出现,导致很多不同版本的SQL语言,为了与ANSI标准相兼容,它们必须以相似的方式共同地来支持一些主要的关键词(比如SELECTUPDATEDELETEINSERTWHERE等等),这些就是我们要学习的SQL基础。二、SQL连接SQL连接ADO.NET。
2025-03-21 23:34:10
740
原创 TCP最全最简单讲解
TCP/IP协议包含了一系列的协议,也叫TCP/IP协议族(,或TCP/IPProtocols),简称TCP/IP。TCP/IP协议族提供了点对点的连结机制,并且将传输数据帧的封装、寻址、传输、路由以及接收方式,都予以标准化二、OSI七层架构OSI模型定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),每一层实现各自的功能和协议,并完成与相邻层的接口通信。OSI模型各层的通信协议,大致举例如左下表所示。TCP/IP协议是。
2025-03-21 23:27:08
808
原创 Modbus最全最简单讲解
保留功能码是在报文格式不给范的时候使用的一些功能码,现在已经不作为公共使用了。用于标识请求和响应的对应关系,客户端发起的每个请求都会分配一个唯一的事务标识符,服务器在响应时会使用相同的标识符。这里值得注意一下,协议中的起始地址指的是索引,后面的地址指的是具体地址,对于任意一个存储区,索引都是从。)是一种在串行通讯中广泛使用的协议,主要应用于工业领域的设备之间。表示接下来的单元标识符、功能码和数据的总长度,单位为字节。开始的,但是对应的具体地址,与存储区是相关的,比如输出线圈,这意味着在未来,如果需要,
2025-03-21 23:16:57
1251
原创 串口通信知识点讲解
串行通讯是指仅用一根接收线和一根发送线就能将数据以位进行传输的一种通讯方式。尽管串行通讯的比按字节传输的并行通信慢,但是串口可以在仅仅使用两根线的情况下就能实现数据的传输。典型的串口通信使用3根线完成,分别是地线、发送、接收。由于串口通信是异步的,所以端口能够在一根线上发送数据同时在另一根线上接收数据。串口通信最重要的参数是波特率、数据位、停止位和奇偶的校验。对于两个需要进行串口通信的端口,这些参数必须匹配,这也是能够实现串口通讯的前提。
2025-03-21 22:56:44
748
原创 如何有效的预防.net中的内存泄露
当你的代码中使用实现了 IDisposable 接口的对象(如 Stream、FileStream、TextReader、SqlConnection 等)时,应该使用 using 语句来自动调用 Dispose 方法,释放非托管资源。静态字段会在整个应用程序的生命周期内将对象保留在内存中,即便这些对象已经不再需要了。特别是列表或者数组的使用,会存在无线大的可能,下面是改良的写法。我们实际开发过程中,刚开始我们的软件运行并无异常,但是时间长了之后出现越来越卡甚至崩溃的情况,这其实都是由于。
2025-02-05 17:38:21
281
原创 工业自动化系统中各种通信方式及适用场景分析
综上所述,每种通信方式都有其独特的优缺点。以太网通信方式适用于要求高速、高可靠性和实时性的大型工业自动化系统;现场总线适用于较小规模、复杂布局的设备通信;串行通信适用于短距离、低速率的通信;工业无线通信则适用于无线传输及对移动性和灵活性要求较高的场景。在构建工业自动化系统时,工程师需要综合考虑通信速度、可靠性、成本、扩展性、实时性和适用场景等因素,综合评估各种通信方式的优缺点,以确保通信解决方案能够满足工业自动化系统的要求。
2025-01-19 21:49:04
1694
原创 C# 开发人员最需要掌握的5种设计模式
(2)如果一个对象有很多的行为,如果不使用合适的模式,这些行为就只好使用多重的if-else语句来实现,此时,可以使用策略模式,把这些行为转移到相应的具体策略类里面,就可以避免使用难以维护的多重条件选择语句(if-else),并体现面向对象的思想。(2)观察者模式在被观察者和观察者之间建立了一个抽象的耦合,被观察者并不知道任何一个具体的观察者,只是保存着抽象观察者的列表,每个具体观察者都符合一个抽象观察者的接口。那么这些算法可以包装到一个个具体的算法类里面,并为这些具体的算法类提供一个统一的接口。
2025-01-19 21:17:31
1192
原创 C# 表达式目录树知识点
C# 中的表达式目录树(Expression Trees)是用来表示编译器可识别的代码构造的树状数据结构。它们可以在运行时构造、修改和执行代码。1.反射发出:表达式目录树可以用来代替反射发出(Reflection Emit),创建动态方法和类。4.表达式导航:在编译时不能确定的条件下,可以在运行时构建表达式目录树来表示程序流程。3.动态查询:表达式目录树可以用于构建动态查询表达式,如 LINQ。一、表达式目录树,在字典中的应用。二、表达式目录树,在泛型中的应用。
2025-01-17 22:20:25
128
原创 C# 委托和事件详解
事件是把委托封装起来,而回调函数则是由委托绑定不同的函数来实现不同的功能。定义一个事件有两步,首先定义一个委托,它包括了这件事的“协议”和委托方法(由谁去做);事件像是一个接口,封装了委托所定的“协议”。它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。如果不进行封装,让委托暴露给调用者,调用者就可以把委托变量重新引用到新的委托对象,也就删除了当前要调用的方法列表;
2025-01-13 22:45:50
179
原创 C# 泛型详解
在C#中,泛型通过在类、接口、方法或委托的名称后面添加尖括号<>来定义。尖括号中包含的类型参数可以是任何有效的C#类型,包括类、结构、接口、委托等。1、泛型方法2.泛型接口3.泛型结构4.泛型类5.泛型委托6.泛型栈这里的StackGet是我自己定义的一个类,符合栈的定义,先进后出的原理。
2025-01-13 22:44:58
116
原创 C# 特性详解
特性(Attribute)是用于在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的行为信息的声明性标签。一个声明性标签是通过放置在它所应用的元素前面的方括号([ ])来描述的。.Net 框架提供了两种类型的特性:预定义特性和自定义特性。特性对于标准软件的开发起到了很重要的作用,市面上自动化的拖拽式标准软件都大量用到了这些,老师自己的标准软件也有,后面讲到软件框架的时候会进一步讲解。下面是几种常见的系统特性的使用举例,donet每个版本的更新都更新了大量的特性,后续可更具自己的需求进行添加。
2025-01-13 22:43:53
172
原创 C# LINQ的使用
LINQ(Language Integrated Query,发音同link)是 C# 语言中用于查询和操作数据集合的一种强大工具。LINQ 的核心思想是使查询语法成为语言的一部分,它允许我们以类似 SQL 的方式查询数组、集合、数据库、XML、甚至其他类型的数据源。通过使用 LINQ,开发人员可以以简洁、清晰的方式操作数据集合,同时还提供了编译时的类型检查.由于篇幅原因,老师在这里展示其中查询的一种,详细资料请关注后续。老师大致总结了下面13种应用场景,
2025-01-13 22:42:51
197
原创 C# 中的集合的详细解析
集合定义在C#中,集合是一种用于存储和操作一组数据的容器。它提供了一种方便的方式来管理多个相关的数据元素,这些元素可以是相同类型(如一组整数)或不同类型(在一些特殊的集合类型中)。集合类通常位于System.Collections和System.Collections.Generic命名空间中,Generic命名空间下的集合类是强类型的,在使用上更加安全和高效。1.1 数组声明一个数组不会在内存中初始化数组。当初始化数组变量时,可以赋值给数组。数组是一个引用类型,所以需要使用new。
2025-01-13 22:42:02
305
原创 C# 中的接口解析和使用场景
在 C# 中,接口(interface)是一种特殊的类型,它定义了一个类或结构体应该支持的一组方法、属性和事件。接口提供了一种可扩展和松散耦合的方式来定义程序设计的契约,常用于实现多态和组件化开发。但是在实际使用过程中,我们很难再去新增或者去修改接口,这个时候九用不到MongeDB和SQL了,此时我们新增一个类,直接利用IDataAccess接口作为依赖,就可以在不大量修改代码的情况下,通过构造函数传递不同的组件实现要求。这些成员只有签名,没有实现,实现是由接口的实现者提供的。2.2. 实现组件化开发。
2025-01-11 22:08:12
251
原创 C# 反射详解
反射是.NET框架提供的一个功能强大的机制,它允许程序在运行时检查和操作对象的类型信息。通过使用反射,程序可以动态地创建对象、调用方法、访问字段和属性,无需在编译时显式知道类型信息。在.NET中,所有类型的信息最终都是存储在元数据中的。反射就是.NET提供的一组API,允许我们在运行时访问这些元数据,从而获得关于程序集、模块、类型、成员等的详细信息。传统取值和反射取值循环10万次,性能相差60ms,反射对于程序性能的影响几乎忽略不计。这节课后面会专门出一期视频详细的讲解,本文对基本的知识点进行展示。
2025-01-09 21:41:51
182
原创 C# 多线程的讲解
在现代软件开发中,多线程和异步编程是非常重要的技术。它们可以提高程序的并发性,使得应用程序更加响应和高效。本文将深入探讨C#中的多线程和异步编程,帮助读者理解其原理、用法和常见问题。本节课的内容过多,文章不易解释,后续会出视频课程对知识点进行详解。将按照以下四类的线程优先级的处理方式进行讲解。
2025-01-09 21:40:07
222
原创 .Net开发人员,最需要了解的13种知识点
LINQ 的核心思想是使查询语法成为语言的一部分,它允许我们以类似 SQL 的方式查询数组、集合、数据库、XML、甚至其他类型的数据源。表达式目录树是一个类的封装,描述了一个结构,有身体部分和参数部分,身体部分分为左边和右边,内部描述了左边和右边之间的关系,可以不断的往下拆分,类似于二叉树表达式目录树展开后的每一个节点也是一个表达式目录树。特性对于标准软件的开发起到了很重要的作用,市面上自动化的拖拽式标准软件都大量用到了这些,老师自己的标准软件也有,后面讲到软件框架的时候会进一步讲解。
2025-01-09 21:36:58
1185
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人