C#
文章平均质量分 58
小哈龙
一颗勇往直前的心
展开
-
c#线程间操作无效,从不是创建控件的线程访问
这个错误通常发生在尝试从非UI线程(非主线程)访问或修改Windows窗体应用程序中的UI元素时。Windows窗体不是线程安全的,因此它有一个称为控件的UI元素只能从创建它的线程(通常是主线程)访问。尝试从另一个线程更新UI会引发一个InvalidOperationException,并提示“从不是创建控件的线程访问它”。转载 2024-07-29 17:50:08 · 190 阅读 · 0 评论 -
C# HTTP POST(System.Net.WebException:请求已中止:请求已被取消)
最近在使用c# http post请求时,遇见了这种异常,大概异常提示如下。原创 2024-06-27 10:00:05 · 741 阅读 · 0 评论 -
C#多线程——Thread睡眠、中断、合并、暂停与恢复、终止
如果一个线程处于阻塞状态(如调用了Sleep()、Join()等阻塞方法以及可中断通道的I/O操作后的阻塞),则在线程状态为WaitSleepJoin状态时,就会在阻塞方法调用处抛出ThreadInterruptException异常,并且在抛出异常后将线程状态设置为其他状态,从而线程从阻塞状态醒过来,并在结束线程前让程序员有足够的时间来处理中断请求。然而,应用程序不会检测到这种情形。1.取消终止线程的请求,并恢复线程,继续执行ResetAbort后面的语句,然后执行catch块之 后的语句。转载 2024-06-03 16:04:40 · 1294 阅读 · 0 评论 -
c# 线程 AutoResetEvent 和 ManualResetEvent
此时,调用 `WaitOne` 方法时,如果 AutoResetEvent 处于无信号状态,则线程将被阻塞,直到调用 `Set` 方法将其置为有信号状态。这样就会又很多个线程等待同一个信号,由于AutoResetEvent是自动恢复无信号的,所以只有一个等待线程会被唤醒并继续执行,那这一个线程肯定是最先调用WaitOnce的地方,因为一旦调用了WaitOnce并通过了,AutoResetEvent自动恢复无信号。其他的当然得继续等咯。信号同步的原理就是等待信号,有信号状态直接过,无信号就等。转载 2024-05-28 11:02:56 · 92 阅读 · 0 评论 -
C#中字符串与字节数组的转换方式
本文介绍了C#中字符串与字节数组的转换方式,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下。转载 2023-10-12 09:31:34 · 2455 阅读 · 0 评论 -
Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口信息
剩下的我们需要其他各种方法用于获取窗口的其他属性。枚举所有窗口仅需要使用到。,其中需要定义一个委托。作为传入参数的类型。转载 2023-09-20 14:04:28 · 1605 阅读 · 0 评论 -
C# SqlSugar框架的学习使用
最近有个开发项目准备启动,由于要求的开发周期较短,所以准备用个C#的框架,原本最初考虑用成熟的EF框架,但是觉得那个框架也太重了,就在网上找找了别的,无意间发现了SqlSugar的框架。简单试了下,发现真是的方便,入门也简单。稳定性和技术支持, 虽然不是官方ORM, 但在稳定性上也是有着数年用户积累,如果遇到问题可以在GITHUB提出来,会根据紧急度定期解决。高性能 ,不夸张的说,去掉Sql在数据库执行的时间,SqlSugar是EF数倍性能,另外在批量操作和一对多查询上也有不错的SQL优化。转载 2023-08-24 11:34:46 · 313 阅读 · 0 评论 -
C# 图片与Base64码的相互转化问题(代码详解)
Base64由于以上优点被广泛应用于计算机的各个领域,然而由于输出内容中包括两个以上“符号类”字符(+, /, =),不同的应用场景又分别研制了Base64的各种“变种”。为统一和规范化Base64的输出,Base62x被视为无符号化的改进版本。Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。转载 2023-08-24 11:09:50 · 3606 阅读 · 0 评论 -
Win11系统软件无法拖拽发送文件的解决方法
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System。转载 2023-03-02 10:02:58 · 5159 阅读 · 0 评论 -
C#实现定时器的几种方案
System.Windows.Forms.Timer是应用于WinForm中的,它是通过Windows消息机制实现的,类似于VB或Delphi中 的Timer控件,内部使用API SetTimer实现的。这个是本人经过测试的,如果你注释掉这两句,定时器会不断的执行Execute方法,如果Execute执行的是一个很耗时的方法,会导致方法未执行完毕,定时器又启动了一个线程来执行Execute方法。计时器最宜用于 Windows 窗体应用程序中,并且必须在窗口中使用,适用于单线程环境,转载 2023-03-01 15:48:50 · 3334 阅读 · 0 评论 -
C#操作SQLite数据库
SQLite是一个开源、免费的小型RDBMS(关系型数据库),能独立运行、无服务器、零配置、支持事物,用C实现,内存占用较小,支持绝大数的SQL92标准。本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。2.3 操作SQLite Database的C#帮助类SQLite Helper。C#下SQLite操作驱动dll下载:System.Data.SQLite。2、C#操作SQLite Database。1、SQLite介绍。转载 2023-02-06 16:28:23 · 9409 阅读 · 0 评论 -
c#离线安装NuGet包
在开发c#程序时,有时会用到第三方库,可以在VS中从NuGet直接下载,但是这是在开发环境联网的情况下,如果开发环境处于无网络连接的时候,那应该如何安装NuGet包呢,解决方案如下。原创 2022-10-10 15:09:24 · 8495 阅读 · 0 评论 -
c# log4日志配置文件
【代码】c# log4日志配置文件。原创 2023-01-31 14:09:00 · 562 阅读 · 0 评论 -
C#组件系列——又一款Excel处理神器Spire.XLS(一)
Spire.XLS是E-iceblue开发的一套基于企业级的专业Office文档处理的组件之一,全称Spire.Office for .NET。旗下有Spire.Doc,Spire XLS,Spire.PDF,Spire.BarCode等多款专业组件,为各种Office文档在程序处理上提供了很大的方便,官方为各种功能提供了大量的在线api,简化了使用组件的难度。组件使用时不需要本地Office组件的支持。转载 2022-10-27 10:22:18 · 3731 阅读 · 0 评论 -
C#组件系列——又一款Excel处理神器Spire.XLS(二)
至此,组件的一些基础功能介绍完毕。当然,这并不是全部,只是博主选的一些觉得或许有用的功能,更多功能可以参考官网文档帮助文档 | 全面丰富的在线文档,助您快速了解如何使用产品当然,如果本文能够帮到你,还是希望园友们帮忙推荐,博主下次继续努力!懒得安分 - 博客园。转载 2022-10-27 10:19:07 · 6366 阅读 · 0 评论 -
C#Office.Interop.Excel.dll读写表格
C#Office.Interop.Excel.dll读写表格。转载 2022-10-11 15:03:51 · 901 阅读 · 0 评论 -
C#如何实现读写ini文件
【代码】C#如何实现读写ini文件。转载 2022-10-11 10:17:05 · 245 阅读 · 0 评论 -
C#自动引用Debug | Release版本的dll
存放路径 解决方案+lib 文件夹下,Debug存放Debug文件,Release目录存放Release文件文本格式打开.csproj工程文件,按下面方法修改修改前:修改后:总结: 将Debug改为 $(Configuration)即可原创 2022-09-26 17:44:53 · 707 阅读 · 0 评论 -
C# 条件编译 (#if 和 Conditional)
(Define constants) 而在将 C# 代码编译到 dll 的编译环节,这个叫做 “转载 2022-09-22 10:54:17 · 1811 阅读 · 0 评论 -
c#自定义事件
在VC++的mfc可以自定义消息(WM_USER+n)来定义自己的消息,通过SendMessage等发送消息的函数向指定窗口发送消息,然后在被发送的窗口消息处理函数中处理消息(即消息的响应),此处有一个弊端,发送的自定义消息必须是发给窗口的,接收对象只能是窗口2.QT中自定义事件(信号)原创 2022-09-20 10:52:49 · 2142 阅读 · 0 评论 -
c#使用log4日志库
在c#使用的日志库有很多种,在nuget包中包含很多,log4在c++中也有使用,感觉有些熟悉感,因此选择log4日志库。原创 2022-08-23 18:23:21 · 2423 阅读 · 0 评论 -
C#常见容器ArrayList、List、HashSet、Hashtable 、Dictionary、Stack、Queue
命名空间ArrayList:是一个使用大小会根据需要动态增加的数组,可以存储任意类型的数据,但是ArrayList存储的都是Object类型,很多时候在存取时需要强制类型转换,引起装箱和拆箱的操作,可能会影响效率。List泛型集合列表:用于存储某一种特定类型的数据,存储的数据可以重复,并且存储的数据是有序的,可以通过下标[]获取。用法在一定程度上比ArrayList更灵活、高效,可以说是最常用的一种容器。......转载 2022-08-09 10:30:06 · 1762 阅读 · 0 评论 -
C#往文件中追加文本内容信息
C#往文件中追加文本内容信息转载 2022-06-28 15:45:42 · 1021 阅读 · 0 评论 -
c# string与c++ std::string的互相转换
本文转载自:C#DLL托管c++ (CLI) String^ 到 std::string 的相互转化_成魔的羔羊的博客-CSDN博客当使用C++/CLI包装C++本地代码时,常常需要将System::String转换为std::string或者char*以调用native C++函数。.net环境中的字符串是unicode的,占2个字节,而很多native C++函数都没有考虑unicode,这种转换不仅仅是2字节转1字节,同时也涉及到字符集的转换。...转载 2022-06-27 14:32:43 · 4185 阅读 · 0 评论 -
c++调用c#的dll
1、打开“项目属性”对话框,方法是右键单击“解决方案资源管理器”中的项目并选择“属性”。 2、展开“配置属性”旁边的节点并选择“常规”。在右侧窗格中的“项目默认值”下,将“公共语言运行库支持”设置为“公共语言运行库支持(/clr)”。 3、在相同的窗格中,确保将“MFC的使用”设置为“在共享DLL中使用MFC”。 4、在“配置属性”下,展开“C/C++”旁边的节点并选择“常规”。请确保将“调试信息格式”设置为“程序数据库/Zi”(而不是“/ZI”)。 5、在“配置属性”下,选转载 2022-06-27 11:35:57 · 4476 阅读 · 1 评论 -
C# Console.WriteLine()函数中{}输出格式详解
格式项都采用如下形式:{index[,alignment][:formatString]} 其中"index"指索引占位符,这个肯定都知道;",alignment"按字面意思显然是对齐方式,以","为标记;":formatString"就是对输出格式的限定,以":"为标记。 alignment:可选,是一个带符号的整数,指示首选的格式化转载 2017-10-25 16:37:25 · 15858 阅读 · 0 评论 -
谈C#中的Delegate
引言 Delegate是Dotnet1.0的时候已经存在的特性了,但由于在实际工作中一直没有机会使用Delegate这个特性,所以一直没有对它作整理。这两天,我再度翻阅了一些关于Delegate的资料,并开始正式整理这个C#中著名的特性。本文将由浅入深的谈一下Delegate这个特性。一.Delegate是什么? Delegate中文翻译为“委托”。Msdn中对转载 2017-11-08 16:57:40 · 13809 阅读 · 0 评论 -
c#的dllimport使用方法详解
DllImport是System.Runtime.InteropServices命名空间下的一个属性类,其功能是提供从非托管DLL导出的函数的必要调用信息DllImport是System.Runtime.InteropServices命名空间下的一个属性类,其功能是提供从非托管DLL导出的函数的必要调用信息DllImport属性应用于方法,要求最少要提供包含入口点的dll的名称。D转载 2017-11-07 11:19:32 · 10765 阅读 · 0 评论 -
Http get与pos
GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。当你在面试中被问到这个问题,你的内心充满了自信和喜悦。你轻轻松松的给出了一个...转载 2017-09-27 15:44:53 · 1873 阅读 · 2 评论 -
Json的序列化与反序列化
序列化:就是将字符串集合原创 2017-09-26 17:45:26 · 2217 阅读 · 0 评论 -
C#如何运行外部程序(打开可执行程序):ShellExcute和Process
最近的任务用到C#来调用C++内核程序,也就是C++编译运行后生成的.exe文件。网搜了一下C#中运行外部程序大致有两种方法,在此稍作总结:(1)使用API函数ShellExcute 添加引用 using System.Runtime.InteropServices; public enum ShowWindowCommands : in转载 2017-09-13 10:57:31 · 6900 阅读 · 1 评论 -
C#控制台应用程序执行结果一闪而过的解决方法
四种方法:方法1:运行程序的时候,不要用F5键执行,用Ctrl+F5执行,它的意思是“启动执行(不调试)”,这样就不会一闪而过了。 方法2:在你的代码的最后加上这句 Console.ReadLine(); 也就是“等待用户输入”,这样DOS窗口直到你敲击回车键才会关闭 方法3:在程序最后加上一句Console.ReadKey();这样DOS窗口接收一个字符才会退转载 2017-10-25 16:43:43 · 6541 阅读 · 0 评论 -
如何查看VS命令行选项,并使用命令卸载VS
对于在Windows下开发的程序员来说,可能会遇到卸载Visual Studio的情况。但是Visual Studio这东西很庞大,有很多组件,直接从控制面板里卸载或者用第三方的系统维护工具卸载,都可能不能完全卸载掉所有组件。下面介绍一种卸载VS 2012和VS 2013的简便方法。1,解压你的VS安装文件(ISO文件)。2,从命令行进入解压后的目录。3,执行vs_ultima转载 2017-11-06 11:31:19 · 2298 阅读 · 0 评论 -
c#读取文本文件出现乱码
在写c#代码的时候,遇到一个问题,在使用File.ReadAllText打开文本文件的时候,调试发现打开的文本是乱码,我生成的这个文本文件是在c++程序下,以多字节格式生成的,然后保存的一个文本,c# File.ReadAllText(ti.Path + "\\TestResult.txt")在读取原创 2017-12-01 15:51:57 · 6298 阅读 · 0 评论 -
C# 文件上传 默认最大为4M的解决方法
1 ,环境:window 2003 ,IIS6.0 要首先要修改IIS6.0 中的asp 请求的最大字节数,默认时为200K ; 方法:打开位于 C:/Windows/System32/Inetsrv 中的 metabase.XML, 并修改 AspMaxRequestEntityAllowed 为你需要的值( 例如 "1073741824", 1GB) ; 技术背景: 在 I转载 2017-12-05 15:43:02 · 2025 阅读 · 0 评论 -
c#中如何跨线程调用windows窗体控件?
我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题。然而我们并不能用传统方法来做这个问题,下面我将详细的介绍。首先来看传统方法:public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object send...转载 2018-01-10 17:32:02 · 7560 阅读 · 0 评论 -
c#退出应用程序办法
c#退出应用程序办法: 1、Application.Exit();//好像只在主线程可以起作用,而且当有线程,或是阻塞方法的情况下,很容易失灵。 2、this.Close();//只是关闭当前窗体。 3、Application.ExitThread();//退出当前线程上的消息循环,并关闭该线程上的所有窗口, 也会失灵。 4、Environment.Exit(0); //前面三种方法都不能...转载 2018-03-16 15:44:55 · 2981 阅读 · 0 评论 -
svn server 配置 与TortoiseSVN、Ankhsvn+VS使用 及 问题
Svn服务器与客户端安装1. 下载安装VisualSvn-Server服务端。(过程略)2. 下载安装TortoiseSVN客户端。(过程略)3. 下载安装vs插件AnkhSvn。(过程略)在服务器中建立仓库打开visualSVN ServerManager ,右击Repositories—新建—Repository,在弹出的对话框中输入仓库名(recharge)安全...转载 2018-05-07 17:10:46 · 423 阅读 · 0 评论 -
c#遍历匹配串口(向每个串口发数据,根据返回数据确定是否为所需串口)
最近在公司有一个项目需要遍历串口,查找设备采用的串口,我的想法是遍历机器上所有串口,对每个串口发送数据,根据串口返回的数据判断该串口是否是目标设备所使用的串口(已有设备串口指令手册),本次采用c#实现。代码如下:using System;using System.Collections.Generic;using System.ComponentModel;using System...原创 2018-07-18 15:23:34 · 2473 阅读 · 0 评论 -
C#串口介绍以及简单串口通信程序设计实现
C#串口介绍以及简单串口通信程序设计实现周末,没事干,写个简单的串口通信工具,也算是本周末曾来过,废话不多,直接到主题串口介绍 串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。(至于再详细,自己百度)串口应用: 工业领域使用较多,比如:数据采集,设备控制等等,好多都是用串口通信来实现!你要是细心的话,你会发现,目前家用国网智能电能表就具备RS...转载 2018-07-03 14:30:25 · 1544 阅读 · 0 评论