代码积累
qq_34458421
这个作者很懒,什么都没留下…
展开
-
使用C#开发邮件发送功能
使用C#开发邮件发送功能原创 2022-10-21 10:33:53 · 443 阅读 · 0 评论 -
C# 连接 IBM MQ
C# 连接 IBM MQ原创 2022-09-19 17:32:07 · 508 阅读 · 0 评论 -
ASP.NET中<%=%>、<%%>、<%@%>、<%#%>的用法与区别
用法翻译 2022-07-25 16:32:39 · 496 阅读 · 0 评论 -
serialPort串口通讯demo、参数及CRC校验记录
serialPort串口通讯参数及CRC校验记录原创 2022-06-21 09:58:02 · 1058 阅读 · 0 评论 -
运行代码报“仅我的代码”警报,提示你正在调试发布版本
情况一:把下图中的Release改为Debug后,在运行就好了原创 2022-04-27 11:11:23 · 1017 阅读 · 0 评论 -
async await用法
1、TimeConsumingMethod是异步方法,AsyncMethod是同步方法,加了await的话AsyncMethod方法会等待TimeConsumingMethod执行完返回Result在执行后面的,如果不加await的话,则AsyncMethod和TimeConsumingMethod各执行各的方法......原创 2022-04-01 14:20:32 · 35 阅读 · 0 评论 -
报错:“从不是创建控件“richTextBox1“的线程访问它”
如上图所示,报错“从不是创建控件的线程访问它”,该报错主要出现在异步方法中,意思就是主方法线程号是1,异步方法线程号是3,控件是在线程1的主窗体构造函数中创建的,在线程3中就不能去访问它。如果要访问它可以使用this.invoke方法。代码如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using Sys...原创 2022-04-01 11:28:56 · 884 阅读 · 0 评论 -
C#中的invoke方法(转发)
在用.NET Framework框架的WinForm构建GUI程序界面时,如果要在控件的事件响应函数中改变控件的状态,例如:某个按钮上的文本原先叫“打开”,单击之后按钮上的文本显示“关闭”,初学者往往会想当然地这么写:void ButtonOnClick(object sender,EventArgs e){button.Text="关闭";}这样的写法运行程序之后,可能会触发异常,异常信息大致是“不能从不是创建该控件的线程调用它”。注意这里是“可能”,并不一定会触发该种异常。造...转载 2021-09-28 09:02:26 · 795 阅读 · 0 评论 -
C#lock语句用法(lock到底有什么用?)(转发)
lock,顾名思义,锁。lock的用法说起来容易,就是锁定当前正在执行的内容。真正理解却不容易。于是,我做了下面的测试,对比使用lock和不使用lock的情况,才真正理解了。在下面的代码中,线程1,2同时调用函数write(),执行函数里面的内容。使用线程锁lock的时候,不会出现两个线程抢占执行函数的情况;不使用线程锁lock的时候,出现两个线程锁抢占执行函数的情景。所以在有很多个线程(Thread 对象)同时运行,要执行同一个操作(调用一个函数)的时候,使用lock把代码锁定,就告诉那转载 2021-09-28 08:54:41 · 589 阅读 · 0 评论 -
udp通信长连接中断的问题
问题描述:使用udp进行长连接,实际连接过程中出现偶发性的连不上的问题解决方法:重新实例化socket对象,判断socket对象是否为空,连接状态是否为未连接状态,重新绑定Ip和端口,在循环体内加个try...catch防止程序出现异常,否则程序将会异常停止...原创 2021-03-16 09:19:41 · 3843 阅读 · 0 评论 -
对c#托管代码和非托管代码的理解与使用
托管DLL和非托管DLL的区别概念:简单来讲,托管DLL就在Dotnet环境生成的DLL文件。非托管DLL不是在Dotnet环境生成的DLL文件(用C\C++编译的代码)。用法:托管DLL文件,可以在Dotnet环境通过 “添加引用” 的方式,直接把托管DLL文件添加到项目中。然后通过 Using DLL命名空间,来调用相应的DLL对象 。非托管DLL文件,在Dotnet环境应用时,通过DllImport调用。为什么有的dll需要注册而有的不需要注册?因为有的是com...翻译 2020-09-28 09:56:02 · 268 阅读 · 0 评论 -
C#单例的概念和示例
查询资料后总结记录单例的用法用于备忘1、定义单例模式是确保一个类只有一个实例,并提供一个全局访问方式的设计方法2、用法要点Singleton的构造函数必须是私有的,确保外层无法通过new进行实例化对象静态变量的生命周期同应用程序的生命周期相同,可以定义一个私有的全局静态变量_instance来保存该类的唯一实例提供一个可访问的静态方法访问类的实例,在该方法内通过判断_ins...翻译 2018-08-07 10:34:29 · 406 阅读 · 0 评论 -
Enumerable.Skip和Enumerable.Take的用法
int[] grades = { 59, 82, 70, 56, 92, 98, 85 }; IEnumerable<int> topThreeGrades = grades.OrderByDescending(grade => grade).Skip(3); Console.WriteLine(...翻译 2018-08-03 09:19:29 · 456 阅读 · 0 评论 -
将Enum转为list集合
static IEnumerable<Suit> Suits() => Enum.GetValues(typeof(Suit)) as IEnumerable<Suit>;翻译 2018-08-03 10:18:12 · 6814 阅读 · 0 评论 -
C#如何使用log4net记录本地日志
log4net用法原创 2018-09-12 10:29:46 · 8237 阅读 · 1 评论 -
使用visualstudio2015的附加进程调试程序
1、启动一个程序进程,此时VS还未进入调试阶段。2、在VS中,选择“调试”-“附加到进程”,选择正在运行的IIS不要选错了,例如选择下面的程序这样是命中不了断点的3、在启动的程序上点击一个事件,并在代码里面相应的事件打断点后就可以命中断点了。...转载 2018-09-12 11:32:11 · 2670 阅读 · 0 评论 -
MVC学习资料
https://www.cnblogs.com/powertoolsteam/p/MVC_three.html转载 2018-09-26 13:37:06 · 158 阅读 · 0 评论 -
更改oracle数据库的字段类型
/*修改原字段名name为name_tmp*/alter table tb rename column name to name_tmp;/*增加一个和原字段名同名的字段name*/alter table tb add name varchar2(40);/*将原字段name_tmp数据更新到增加的字段name*/update tb set name=trim(name_tmp);/*...转载 2018-10-12 15:25:50 · 497 阅读 · 0 评论 -
asp.net request乱码的问题
有两种方式可以解决:1、客户端JS编码2、客户端C#代码编码原创 2019-01-04 11:05:46 · 400 阅读 · 0 评论 -
c#定义索引器
索引器的声明在某种程度上类似于属性的声明,例如,使用 get 和 set 方法来定义一个索引器。不同的是,属性值的定义要求返回或设置一个特定的数据成员,而索引器的定义要求返回或设置的是某个对象实例的一个值,即索引器将实例数据切分成许多部分,然后通过一些方法去索引、获取或是设置每个部分。定义属性需要提供属性名,而定义索引器需要提供一个指向对象实例的 this 关键字。代码示例:using...翻译 2018-08-02 10:15:01 · 1075 阅读 · 0 评论