![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++与C#
红小岩
这个作者很懒,什么都没留下…
展开
-
以多线程和缓存的方式处理串口的发送和接收动作
转载:https://www.cnblogs.com/showlie/articles/2367154.html一、现象不管如何设置ReceivedBytesThreshold的值,DataReceived接收到的数据都是比较混乱,不是一个完整的应答数据。二、原因1、上位机下发的命令比较密集,以200ms周期发送实时状态轮询命令。2、在状态实时轮询命令中间有操作命令插入。2、不同的命令,接收的应答格式也不同。三、分析不同的命令有不同的应答数据,但是不同的应答数据中都具有唯一的结束符,可以根据转载 2020-06-03 21:46:05 · 3296 阅读 · 1 评论 -
this.Invoke( ) 括号中委托的几种写法
listBox1.Invoke((Action)(() =>{//使用lambda表达式 使用Action封装一个不具参数、返回值的函数 delegate void System.Action()//本身也是一个委托形式}));listBox1.Invoke((Action)delegate { //delegate{} 是一个匿名委托方法});...原创 2020-05-29 20:45:58 · 986 阅读 · 0 评论 -
C#两窗体(或类)之间传值
转载:https://blog.csdn.net/zt15732625878/article/details/79685336窗体之间大致包含三种方法:1、通过全局变量2、通过构造函数传递参数3、通过委托实现一、通过全局变量在不同窗体间传值,最专业的做法是新建一个类B.cs,在类B中定义Public static 全局静态变量,使用类A赋给B值,类C再去访问B,实现...原创 2020-01-10 23:00:11 · 8294 阅读 · 1 评论 -
6个实例详解如何把if-else代码重构成高质量代码
转载:https://blog.csdn.net/qq_35440678/article/details/77939999写if-else不外乎两种场景:异常逻辑处理和不同状态处理。(我自己的理解是条件优先级、条件平等两种情况),两者最主要的区别是:异常逻辑处理说明只能一个分支是正常流程,而不同状态处理都所有分支都是正常流程。一、异常逻辑处理型重构方法异常逻辑处理型重构方法实例一:(合...转载 2020-01-09 15:14:22 · 315 阅读 · 0 评论 -
C#中消息处理机制(事件与委托)
转发:https://www.cnblogs.com/gaara-zhang/p/9963838.html转发:https://blog.csdn.net/hhh1108/article/details/51362923一、c# 消息机制概述1.windows系统是一个消息驱动的系统,windows本身有自己的消息队列。 系统传递消息给应用程序。 应用程序的消息机制:应用程序的执行是通过...转载 2019-11-14 11:20:56 · 987 阅读 · 0 评论 -
C#语法:C# 简述Action与function内置委托用法、Lambda 表达式创建委托最为方便
转载:https://www.cnblogs.com/Xue-Dragon/p/10578190.htmlAction 与 Func是.NET类库中增加的内置委托,以便更加简洁方便的使用委托。最初使用委托时,均需要先定义委托类型,然后定义一个符合委托类型签名的函数,在调用前,需声明并创建委托对象,将指定函数与委托进行关联。如例1:public delegate int Math(int ...转载 2019-10-29 16:19:11 · 1043 阅读 · 0 评论 -
C#中三种定时器的用法和区别
转载:https://zhidao.baidu.com/question/264384623301064285.html一. System.Windows.Forms.TimerSystem.Windows.Forms.Timer 要求要有UI 消息泵, 所以通常只在主线程上使用.System.Windows.Forms.Timer 用于以用户定义的事件间隔触发事件。Windows 计时器...转载 2019-10-16 09:43:06 · 1127 阅读 · 0 评论 -
C#事件函数参数 object sender, EventArgs e 理解
object sender:表示触发事件的控件对象 ,sender参数用于传递指向事件源对象的引用。简单来讲就是当前的对象。使用sender 可以查出此时触发事件的具体控件是谁。EventArgs e 简单来理解就是记录事件传递过来的额外信息。一般用于传递用户点击的位置啊,键盘按下的键值等事件的额外信息。就是一些事件附属的信息。...原创 2019-08-23 16:02:24 · 2119 阅读 · 0 评论 -
C#中TeeChart控件插件下载及安装
下载:https://blog.csdn.net/liuyi1207164339/article/details/46730213安装:https://blog.csdn.net/sunriver2000/article/details/82290239转载 2019-09-02 16:36:37 · 2529 阅读 · 0 评论 -
C#中的栈与堆-程序运行时的内存区域还有CLR(内存分配和垃圾收集等管理机制)的介绍
转载:https://blog.csdn.net/lym940928/article/details/79818029栈与堆内存空间可以分为两种:栈与堆栈空间比较小,但是读取速度较快。栈的特征:数据只能从栈顶进行插入和删除。将数据放入栈顶称为入栈(push)将栈顶删除数据称为出栈(pop)先进后出堆空间比较大,但是读取速度较慢。堆的特征堆里的内存能以任意顺序存入和移除...转载 2019-09-02 22:19:24 · 270 阅读 · 0 评论 -
C#异步调用的实现机制及调用方法
对于异步调用,.NET内部究竟做了什么?一旦你使用.NET完成了一次异步调用,它都需要一个线程来处理异步工作内容(以下简称异步线程),异步线程不可能是当前的调用线程,因为那样仍然会造成调用线程的阻塞,与同步无异。事实上,.NET会将所有的异步请求队列加入线程池,以线程池内的线程处理所有的异步请求。对于线程池似乎不必了解的过于深入,但我们仍需要关注以下几点内容:● Sleep()的异步调用会在...原创 2019-09-08 21:25:24 · 801 阅读 · 0 评论 -
句柄的简单理解
你可以把句柄理解为对象名,比如有个类 Class1,你申明了一个该类的对象,Class1 c1 = new Class1();那么这时c1就是一个句柄,它代表了一个Class1类的对象,通过c1你可以调用该类的一切方法、属性。对象是一个复杂的集合,它有很多属性,分配在内存堆里,而句柄只是给这个对象取的一个代号,它就是几个字符而已,存储在内存栈中。就如同人的名字一样,张三是一个人的名字,它就是一个人...原创 2019-09-17 22:19:21 · 328 阅读 · 0 评论 -
C#在mainForm_FormClosing事件中不能调用this.close(),会造成死循环
在程序中调用this.close(),会自动调用程序的mainForm_FormClosing事件或mainForm_FormClosed事件,如果在mainForm_FormClosing又调用用this.close(),又会跳到mainForm_FormClosed()函数第一行,只有有调用this.close(),又跳到第一行,无限死循环。例:private void mainForm_...原创 2019-10-06 16:14:32 · 1256 阅读 · 0 评论 -
委托与事件的理解
委托和事件的新理解:委托关键字delegate, public delegate int MyDelegate(int x, int y); 委托只用声明一个函数长什么样子,委托只是一种协议,只要符合声明形式的函数,都可以被调用。委托也可以关联多个函数,随后调用委托时,就会调用所有与委托实例关联的方法。事件的声明static event MyDelegate myEvent; 事件需要使用...原创 2019-08-23 15:09:15 · 255 阅读 · 0 评论 -
sever sql数据库知识
注:参考的博客:https://www.cnblogs.com/delphinet/archive/2011/06/24/2088765.html数据库连接的一些知识较全的SQL基础知识博客:https://blog.csdn.net/weixin_43727372/article/details/90597528https://www.cnblogs.com/hong-fithing/p/...转载 2019-07-29 15:12:11 · 103 阅读 · 0 评论 -
C++和C#语法学习后的总结
C++和C#语法学习后的总结经过这几个月的学习,在这里做个总结。最先开始是重新学习C++的语法,接下来学习C#,C#的语法和C++很相似,C#没有指针,不支持多继承,但可以继承多个接口,算是弥补不能多重继承类,C#中全部都是类封装起来,没有单独的变量或函数,main()函数也是在一个类中。以下是具体的总结:1、C++方面(这里我只讲诉对于我之前没完全掌握的东西,略微凌乱)1)重载:有函数重载...原创 2019-07-20 16:40:54 · 279 阅读 · 0 评论 -
C#之 使用Process打开文件
注:转载博客https://blog.51cto.com/13758648/2146022 (里面有详细说明)Process提供对本地和远程进程的访问权限并使你能够启动和停止本地系统进程。Process可以打开文件,也可以打开exe的运行程序...原创 2019-07-30 10:25:56 · 506 阅读 · 0 评论 -
多线程中InvokeRequired和Invoke的用法
转载:https://blog.csdn.net/mycomputerxiaomei/article/details/40073399C#中禁止跨线程直接访问控件,InvokeRequired是为了解决这个问题而产生的,当一个控件的InvokeRequired属性值为真时,说明有一个创建它以外的线程想访问它。此时它将会在内部调用new MethodInvoker(LoadGlobalImage...原创 2019-07-30 15:42:00 · 1034 阅读 · 0 评论 -
C#中UI线程使用多个定时器不会造成中断冲突,但会造成线程阻塞
Timer应该是单线程的,跟窗体同一线程,所以应该是轮流执行,如果其中一个执行时间要很久,其它Timer也得等它执行完 。举例:以下这个例子就可以说明,2个计时器都是100毫秒触发一次,但第一个timer里处理时间>100毫秒,这里用sleep1秒模拟,这样应该1秒后a=1,而b=10,但结果是a和b相差无几,说明第2个计时器被阻塞了,用System.Windows .Form...原创 2019-08-07 22:27:58 · 3359 阅读 · 0 评论 -
文件路径和ini文件操作小结
1、相对路径和绝对路径绝对路径:就是把在某盘某目录下某文件详细写出,相对路径可以省略前面的一些文件夹,默认为再当前项目目录下储存的文件。路径有3种方式,当前目录下的C#文件相对路径、当前工作盘的C#文件相对路径、绝对路径。以C:\Tmp\Book为例(假定当前工作目录为C:\Tmp)。“Book”,“\Tmp\Book”,“C:\Tmp\Book”都表示C:\Tmp\Book。能写全的绝对目录最...原创 2019-08-01 20:52:10 · 2245 阅读 · 0 评论 -
解决关闭窗口,C#报错"在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke"
注明:转载文章https://blog.csdn.net/ohuancheng/article/details/80164543版权声明:本文为CSDN博主「勿勿」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/szstephenzhou/article/details/12838961情况一:在C#开发...原创 2019-08-08 12:29:06 · 11046 阅读 · 3 评论 -
C#中DBNull和NULL区别
**1、**DBNull是一个类。DBNull.Value是它唯一的实例。它指数据库中数据为空()时,在.net中的值。null表示一个对象的指向无效,即该对象为空对象。 对数据库中的数据进行判断时,用if (!(sdrCT[0] is DBNull)),而不是用!=代替is。null 是c#中的null,dbnull是数据库中的null类型。两个是不等的。 所以在往数据库里面存储null类型的时...原创 2019-08-09 10:37:05 · 1617 阅读 · 0 评论 -
C#中 StringBuilder类使用
C#类型分为值类型(分配空间为栈,存放值)和引用类型(分配空间为堆,存放指针)。string类型为引用类型。String对象,一旦赋值就不可改变(叫做字符串的恒定性),赋值完了之后,再对String进行拼接,赋值等,都会再内存里面重新分配一个新的内存空间。在需要对字符串执行重复修改的情况下,与创建新的 String 对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使...转载 2019-08-09 11:23:17 · 369 阅读 · 0 评论 -
C#引用类型和值类型的区别,还有ref的用法(对引用类型在堆栈中的存储方式介绍)
转载:https://www.cnblogs.com/daisyping/p/8489569.htmlhttps://www.cnblogs.com/qixinbo/p/6961125.html一、基本的栈和堆我们常说的堆栈,其实是有两层含义A、栈和堆是两种数据结构栈:一种先进后出的数据结构。堆:堆可以被看成是一棵树。B、内存中的位置栈:栈使用的是一级缓存, 他们通常都是被调用时处...转载 2019-08-19 00:08:49 · 293 阅读 · 0 评论 -
C#的常用的异常处理类
转载:https://www.runoob.com/csharp/csharp-exception-handling.html自己小结:一般程序里面调用的都是system异常。Application异常是用户自己定义的类,并使用throw抛出,进行处理。...转载 2019-08-19 11:20:14 · 251 阅读 · 0 评论 -
C#调用matlab的Add函数生成的dll文件的过程
以下几个博客说的很清楚https://blog.csdn.net/a345758541/article/details/83893871https://blog.csdn.net/weixin_43311110/article/details/87880951https://www.cnblogs.com/1987-05-04/p/7508736.htmlhttps://blog.csdn...原创 2019-08-09 17:44:43 · 758 阅读 · 0 评论 -
C#多线程小结
声明:参考学习博客https://www.cnblogs.com/jara/p/3427398.html1、在 C# 中,进程中第一个被执行的线程称为主线程。当 C# 程序开始执行时,主线程自动创建。使用 Thread 类创建的线程被主线程的子线程调用。您可以使用 Thread 类的 CurrentThread 属性访问线程。2、线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、...原创 2019-07-23 17:45:52 · 183 阅读 · 0 评论